前言
有些时候你使用Charles可能会抓不到手机的包,原因是app中做了一些代理检测。所以本次介绍一下VPN抓包
对抗代理抓包
在aap中使用System.getProperty("http.proxyHost");和System.getProperty("http.proxyPort");即可获得代理ip和端口。去检测是否为null就可以知道app是否被代理抓包了。
public class MainActivity extends AppCompatActivity {
private TextView proxyHostText;
private TextView proxyPortText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
proxyHostText = findViewById(R.id.host);
proxyPortText = findViewById(R.id.port);
String proxyHost = System.getProperty("http.proxyHost");
String proxyPort = System.getProperty("http.proxyPort");
if (proxyHost != null) {
proxyHostText.setText("代理Host:"+proxyHost);
}
if (proxyHost != null) {
proxyPortText.setText("代理Port:"+proxyPort);
}
}
}
如果使用了代理效果如下:
![](https://img.haomeiwen.com/i23598658/b8d22be205a71a00.png)
VPN抓包
先去git上下载postern安装
postern下载地址
配置Charles
修改Proxy-->Proxy Settings如下,开启SOCKS proxy
![](https://img.haomeiwen.com/i23598658/a75350c5861fbe95.png)
配置postern
首先记得关闭你的wifi代理
1.添加代理服务器
![](https://img.haomeiwen.com/i23598658/091252b95a4cb6c7.png)
这里的ip写Charles所在的电脑ip,端口写Charles配置的端口,代理类型为SOCKS5
2.配置规则
![](https://img.haomeiwen.com/i23598658/1e4af7c2f7bf37cf.png)
删除其中原本的规则,添加一个自己的规则
![](https://img.haomeiwen.com/i23598658/9d76d70e39b6c4b9.png)
保存后打开VPN
![](https://img.haomeiwen.com/i23598658/da32e91af6ec06dc.png)
手机、Charles匹配成功后,Charles工具显示弹窗,询问是否允许,点击Allow按钮
![](https://img.haomeiwen.com/i23598658/62606bd0042d08a7.png)
至此Charles就可以抓取到手机是的包了
并且可以看到我们前面的检测是无效的了
![](https://img.haomeiwen.com/i23598658/fe8458c8e0dbf31b.png)
网友评论