一.问题
1.为什么不使用代理抓包
之前我一直用的代理抓包,直接在系统设置里设置代理,
容易检测
System.getProperty("http.proxyHost")
System.getProperty("http.proxyPort")
// no_proxy
new OkHttpClient().newBuilder().proxy(Proxy.NO_PROXY).build()
2.为什么使用vpn抓包
vpn运行在网络层,使手机的路由器或路由表改变
更加偏向底层,可以获取更多的上层流量
– http也是tcp的一种实现
- 使用尽量底层的,可以获取更多的上层流量,比如socks或者说tcp/udp
3.但是vpn一样可以被检测
可以检测网卡
java.net.NetworkInterface.getName()
android.net.ConnectivityManager.getNetworkCapabilities(network)
二.vpn+中间人抓包
1.首先下载postern,尽量用开发机,别用自己手机
2.然后下一步下载charles
3.charles激活码
然后安装证书,这里可以用老方法,用代理的方式,或者
看这篇文章,使用adb 导入
当然也可以使用mt管理器:mt管理器
将/data/misc/user/0/cacerts-added/ 用户证书目录转移到系统目录下 /system/etc/security/cacerts
postern设置
- 1.首先获取本机ip地址,ipconfig(windows)
或者 - 2.设置
charles proxy
这个记得勾选
还有很重要的https,获取所有https流量
- 3.
postern
设置规则
1.
2.
3.
然后选择关闭vpn,再打开
就可以抓包了
三.vpn+中间人+梯子
1.
2.
3.
保存,然后就会发现
四.手机vpn抓包
通过手机抓包的一个好处就是可以锁定某个app流量
点这里下载httpCanary
按要求移动,给一个超级root权限
就可以愉快的抓包了