抓包学习记录
1.检测VPN可用如下方法(来自于chatgpt的回单,可能不全,但绝大部分都是这种)
private boolean isVpnConnected() {try {// 获取当前网络接口列表Enumeration networkInterfaces = NetworkInterface.getNetworkInterfaces();while (networkInterfaces.hasMoreElements()) {NetworkInterface networkInterface = networkInterfaces.nextElement();// 检查是否为虚拟网络接口(即VPN)if (networkInterface.isVirtual() && networkInterface.getInterfaceAddresses().size() > 0) {return true; // 如果存在虚拟网络接口,则表示已经打开了VPN}// 检查是否为虚拟网络接口(即VPN)if (networkInterface.getName().contains("tun0")) {return true; // 如果存在虚拟网络接口,则表示已经打开了VPN}}} catch (Exception e) {e.printStackTrace();}return false; // 未检测到打开的VPN}
private boolean isVpnConnected2() {try {// 获取当前活动的网络信息ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);Network[] networks = connectivityManager.getAllNetworks();for (Network network : networks) {NetworkCapabilities capabilities = connectivityManager.getNetworkCapabilities(network);// 检查是否具有VPN传输功能if (capabilities != null && capabilities.hasTransport(NetworkCapabilities.TRANSPORT_VPN)) {return true; // 如果存在具有VPN传输功能的网络,则表示已经打开了VPN}}} catch (Exception e) {e.printStackTrace();}return false; // 未检测到打开的VPN}
2.pass脚本如下
Java.perform(()=>{var connectivityManager = Java.use("android.net.ConnectivityManager");connectivityManager.getNetworkCapabilities.implementation = function (arg0) {var result = this.getNetworkCapabilities(arg0);console.log("arg0:",arg0,"result:",result);return null;}var networkInterface = Java.use("java.net.NetworkInterface");networkInterface.getName.implementation = function () {var result = this.getName();console.log(result);if (result.indexOf("tun0")!=-1){return "tanran";}return result;}
})
3.为什么建议用vpn抓包,而不是http/https代理抓包
因为app可以设置不走http代理,从而抓不到包
OkHttpClient client = new OkHttpClient.Builder().proxy(Proxy.NO_PROXY).build();
URL url = new URL("http://example.com");HttpURLConnection connection = (HttpURLConnection) url.openConnection(Proxy.NO_PROXY);
或者通过如下代码检测代理,所以在应用层抓包时,会被很轻易的检测到和绕过的。
System.getProperty(“http.proxyHost”)System.getProperty(“http.proxyPort”);
http和https都在应用层,socks在会话层,tcp和udp在传输层。ip在网络层。vpn是属于网络层的。
所以抓包推荐vpn的形式,大佬说一定要有大局观的思维,才能对各种问题进行降维打击。
参考App抓包|肉丝姐抓包课笔记
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
