1.背景
除了校验HTTPS证书防止中间人抓包以外,常见的方法还有通过检测代理防止抓包,其原理是检测到设备开启系统代理后,APP中通过代码实现禁用代理,以OkHttp框架为例,示列代码如下:
/*
* 检测代理
* 直接绕过代理,网络正常但抓包工具无法抓包
*/
mCheckProxy = findViewById(R.id.checkProxy);
mCheckProxy.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked){
client = new OkHttpClient().newBuilder().proxy(Proxy.NO_PROXY).build();
}else{
client = new OkHttpClient();
}
}
});
对抗方法也比较简单,可以使用iptables对请求进行强制转发,ProxyDroid全局代理工具就是通过iptables实现的,所以使用ProxyDroid开启代理,可以比较有效的绕过代理检测。
2.ProxyDroid设置**
2.1推荐从Google Play下载ProxyDroid
2.2对ProxyDroid进行配置(基本配置)
(1 )Auto Setting不勾选,我们手动进行配置。<br /> (2 )Host:输入代理服务器IP。<br /> (3 )Port:输入代理服务器端口。<br /> (4 )Proxy Type选择代理服务器提供服务类型:我这里选择Socks5。<br /> (5 )Auto Connect为当2G/3G/WIFI网络开启时,自动开启代理服务。不勾选,我们手动启动,以获取最大灵活性。<br /> (6 )Bypass Addresses:相当于黑名单列表,选择排除代理的IP范围,有需要的可以自己手动设置。<br />
2.3认证信息配置
(1)Enable Authentication :如果代理服务器需要账户、密码认证,勾选。<br /> (2)User :认证账户名。<br /> (3)Password :认证密码。<br /> (4)NTLM Authentication:NTLM/ NTLM2,Windows早期的一种认证方式,不用勾选。
2.4特征设置
(1)Global Proxy:一定要勾选,即为全局代理,代理所有App。<br /> (2)Individual Proxy:单独代理所选App ,勾选了(1)的不用管。<br /> (3)Bypass Mode:勾选了代表(2)中所选App不代理,勾选了(1)的不用管。<br /> (4)DNS Proxy:开启DNS代理。
2.5通知设置
(1 )Ringtone :选择通知铃声。<br /> (2 )Vibrate :选择连接发生变化时是否震动提醒。
**