Android N以上使用Charles抓https包

本文分享了在调试APP接口时遇到的问题及解决方案。作者在抓包过程中发现无法使用所有接口,通过研究发现需在res目录下创建特定xml文件并配置manifest文件,使应用能够信任自签名证书,实现debug包的抓取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近开发一款app,调试接口的时候抓包~于是按照以往的经验给手机和pc装证书~一波操作猛如虎。最后发现不行~app全部接口都用不了。开始怀疑人生。

 

后来看了https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/ 发现原来要进行如下操作才可以的~

 

 

大概是说需要在res目录新建一个xml文件加入如下内容:

<network-security-config> 
  <debug-overrides> 
    <trust-anchors> 
      <!-- Trust user added CAs while debuggable only -->
      <certificates src="user" /> 
    </trust-anchors> 
  </debug-overrides> 
</network-security-config>

~然后在manifest中的application配置:

<application android:networkSecurityConfig="@xml/network_security_config" ... >
        ...
    </application>

这样我们可以抓debug包的内容

那么问题来了,怎么抓别人的release的呢?

母鸡啊~

### 使用 Charles 工具对 Android 14 进行抓包操作 #### 一、安装并启动 Charles 为了在 Android 14 上成功使用 Charles 抓包,首先需要确保已正确安装 Charles 并完成基本设置。可以通过官方提供的免费试用版链接下载软件[^1]。 启动 Charles 后,在菜单栏中找到 `Proxy` -> `Proxy Settings...`,确认 HTTP/HTTPS 的监听端口默认为 `8888`。如果需要更改端口号,请在此处调整,并记住后续设备连接时需匹配该端口配置[^3]。 --- #### 二、Android 设备网络配置 对于运行 Android 14 的设备,其安全机制有所增强,因此需要额外注意以下几点: 1. **Wi-Fi 设置中的手动代理** 打开 Android Wi-Fi 设置页面,选择当前使用的无线网络,进入高级选项(通常通过长按或编辑按钮访问),切换至静态 IP 地址模式。随后输入电脑上的 Charles 主机 IP 和指定的代理端口(通常是 `8888`)[^2]。 2. **启用调试功能** 如果目标应用启用了严格的安全策略,则可能还需要关闭系统的网络安全验证。这一步可通过修改 `/data/local/tmp/netspice.conf` 文件或将特定域名加入白名单来实现[^5]。 --- #### 三、安装 CA 证书 由于 HTTPS 流量加密特性,默认情况下无法直接读取具体内容。解决办法是在移动设备上导入 Charles 提供的信任根证书 (Root Certificate),具体流程如下: - 在 Charles 中依次点击 `Help` -> `Install Charles Root Certificate on a Mobile Device or Remote Browser`,按照提示打开对应的 URL (`https://www.charlesproxy.com/getssl`) 下载证书文件。 - 将下载好的 `.cer` 或其他格式证书保存到手机存储目录下,接着前往系统设置里的 “安全与隐私” 板块执行安装过程[^4]。 > 注意:部分最新版本安卓可能会限制第三方应用程序获取敏感数据权限;此时建议查阅厂商文档或者尝试降级测试环境以绕过这些障碍物。 --- #### 四、开启 SSL 解密支持 为了让 Charles 能够拦截并解析 HTTPS 请求响应体内的信息,还需进一步激活 SSL 握手解密能力: - 返回桌面程序界面,定位到左侧树状结构下的某个待监控站点节点右键属性对话框里勾选允许此主机名范围内的所有子域共享相同规则; - 接着转至顶部导航条位置寻找名为 `[SSL Proxying]` 的标签页,打开启用开关并将目标服务器地址填入列表之中以便后续处理逻辑生效。 完成后重新加载网页资源即可看到完整的通信细节展示出来! --- ```bash # 示例命令用于检查本地防火墙状态是否阻止外部流量转发 sudo iptables -L -n | grep ESTABLISHED ``` --- #### 总结说明 综上所述,针对基于 Android 14 版本号以上的智能终端实施全面的数据捕获作业并非易事,但只要遵循上述指导方针逐一排查潜在隐患点位,最终定能达成预期效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值