App 防止 Fiddler、Charles等代理工具 抓包

/**
 * 判断是APP是否使用代理
 * @param context
 * @return
 */
public static boolean isWifiProxy(Context context) {
    final boolean IS_ICS_OR_LATER = Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH;
    String proxyAddress;
    int proxyPort;
    if (IS_ICS_OR_LATER) {
        proxyAddress = System.getProperty("http.proxyHost");
        String portStr = System.getProperty("http.proxyPort");
        proxyPort = Integer.parseInt((portStr != null ? portStr : "-1"));
    } else {
        proxyAddress = android.net.Proxy.getHost(context);
        proxyPort = android.net.Proxy.getPort(context);
    }
   Log.i("代理信息","proxyAddress :"+proxyAddress + "prot : " proxyPort")
    return (!TextUtils.isEmpty(proxyAddress)) && (proxyPort != -1);
}

这样就可以进行友好提示了

使用okhttp

okhttp 提供了设置代理的方法,设置成无代理的模式即可.

OkHttpClient.Builder okHttpClient = new OkHttpClient.Builder();
okHttpClient.proxy(Proxy.NO_PROXY);

这里我们设置不使用代理的模式,就会忽略掉代理,直接发送网络请求。这样就能阻止第三方使用 Fiddler 或 Charles 进行抓包。

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Fiddler是一个强大的网络调试工具,特别适合Windows平台,常用于抓取和分析HTTP/HTTPS数据包。如果你想要在手机上使用类似功能并进行实战,通常会涉及到以下步骤: 1. **Fiddler代理设置**:首先,你需要在电脑上安装Fiddler,并将其设置为全局HTTP和HTTPS代理。这样,手机通过网络请求的数据会经过电脑,便于抓包。 2. **手机应用支持**:不是所有手机App都能直接支持Fiddler抓包,对于Android设备,可能需要使用如 Charles 或mitmproxy这样的代理工具;对于iOS设备,你可能需要使用Paw或者Charles(通过USB连接)。 3. **证书管理**:为了让手机信任电脑作为代理,你可能需要在Fiddler中创建或导入自签名的SSL证书。 4. **手机配置**:在手机的开发者选项或网络设置中,允许应用访问USB调试模式(仅限Android)或连接到特定的Wi-Fi网络(如Charles提供的)。 5. **实际抓包**:开始使用Fiddler或选择的工具捕获流量,观察手机发出的请求和接收到的响应,你可以查看请求头、请求体、响应头和响应体等信息,这对于诊断网络问题、调试API交互或测试安全漏洞非常有用。 6. **模拟数据或修改请求**:如果需要,你可以修改或模拟返回的响应,进行测试或者研究App的行为。 相关问题: 1. Fiddler如何设置为手机的代理? 2. 对于不支持直接抓包App,有哪些替代方案? 3. 在iOS设备上如何通过Fiddler进行抓包

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值