一、 不通过代理进行发包
这里推荐大家去百度下常用的app发包的实现
- HttpsURLConnection设置不走代理
代码如下:
System.getProperties().put(“proxySet”, “true”); System.getProperties().put(“proxyHost”, “proxy.xxx.com”); System.getProperties().put(“proxyPort”, “8080”); - okhttp3设置不走代理
上链接:okhttp防止抓包的实现
防止代理抓包的实现
解决方案:
- Hook设置代理.frida或者xp都有相对应的脚本
- 在模拟器中可以使用httpv7来抓包,这个工具用来抓应用程序的包
- 使用VPN抓包,就是虚拟出来一张网卡,虚拟网卡的实现办法,我是虚拟网卡,我又不是依据代理抓包,所以防止代理抓包检测无效,毕竟网络请求还是要走网卡的。
代理检测与VPN检测
- 代理检测
System.getProperty通过这行代码可以获取到系统是否使用了代理 - VPN检测一
NetworkInterface.getNetworkInterfaces();
networkInterfaces.hasMoreElements()
java.net.NetworkInterface.getName
android.net.ConnectivityManager.getNetworkCapabilities
这里获取的name可能是一下情况tun0,ppp0
解决方案:
- 可以尝试使用Objection把java.net下的类全hook,来查看app使用了哪些方法
- Hook相应的类,并修改(这个根据课程中我们开发的app进行查看)
if(name == "tun0" || name == "ppp0"){return "rmnet_data0";}else {return name;}
- 通用的HOOK抓包手段
肉丝大佬的:https://github.com/r0ysue/r0capture - fasdf