Mac 下配置Charles踩坑之旅
1、参考文章
具体可以参考下面几个同学的文章,几位同学写的已经很详细了,但是他们的坑没填完
https://blog.csdn.net/weixin_44462377/article/details/90322323
https://blog.csdn.net/jiegeniuboyi/article/details/141831764
https://blog.csdn.net/jiegeniuboyi/article/details/141831764
https://cloud.tencent.com/developer/article/2427128
2、踩的坑
我主要是想记录下我踩的坑,很久没配置了,都忘完了
首先激活,我从第一个文章处的百度网盘下载后,版本为4.0.6,我mac版本已经是15.1.1
安装后,首先输入根据下面提示去激活:
将 Charles.app 拖至 应用程序 文件夹
打开后:在菜单——help菜单下—register Charles下,输入下列序列码
Registered Name: https://zhile.io
License Key: 48891cf209c6d32bf4
第一个坑 无法生成证书
成功激活后,按照下图指引点击安装证书,奈何钥匙串中怎么搜不到添加的这个证书,无奈只能去官网下了最新的5.03版本,点击下载mac版本,最新版本点击这个install后又能找到,这里如果碰到坑的小伙伴,建议反复试一下,我是老版本新版本翻来覆去的卸载安装了好多遍才安装上的,记得时不时重启下Charles与钥匙串。
幸好上面的序列码也能激活,下载最新版本后,继续按照下面生产生成证书,
第二个坑 手机连接电脑代理(必须处于同一个网络)
ios、小米手机都能正常在wifi设置中设置手动代理,荣耀手机得长按连接的那个wifi,然后点击修改网络,每个手机添加域名与端口号,并保存后,都要注意电脑会弹框,记得点允许。
下面把ios与小米的截图贴上:


第三个坑 手机安装证书,手机无法打开下载地址
我生成的地址如下图,不管用ip+端口还是手机打开自带的浏览器输入chls.pro/ssl,一直提示打不开,不管怎么尝试,不知道什么原因。后面搜索了下其他同学的文章,采用了这个备用地址,尝试访问 charlesproxy.com/getssl,突然就成了,一时之间不知道该说啥,到处都是坑。
:
附图小米与荣耀成功打开的截图吧,ios的忘截图了,跟其他小伙伴文章里面的一样(一定记得要自带的浏览器打开,荣耀我用的UC,怎么都无法打开,换自带的一下就可以了,哎):


这里到现在为止荣耀手机无法打开下载地址下载证书,小米手机能打开,但是要么下载下来的不全要么就卡住。。。。还在持续填坑中。
第四个坑 ios手机安装后,还要信任设置
如下图所示,ios 10以后,去设置,通用,关于手机,证书信任设置里面,打开信任才行。

以防有些小伙伴找不到,截个图吧:

附带一个拦截电鸭app接口成功的截图吧:

(话说抖音、懂车帝的接口都抓不到,他们安全性做的这么好吗)
豆包回答:
不同 App 抓包成功率的差异,核心原因是App 的网络安全防护策略不同。像电鸭这类 App 可能未做特殊防护,而抖音、懂车帝等大厂 App 会通过多重技术手段阻止抓包,具体差异点如下:
一、基础原因:是否启用 “证书校验” 和 “代理检测”
1. 电鸭等易抓包的 App:几乎不做防护
- 不校验证书合法性:当手机安装了 Charles 等工具的根证书后,App 会默认信任该证书,允许 HTTPS 流量被解密,抓包工具能直接解析内容。
- 不检测代理环境:即使手机开启了代理(指向抓包工具),App 也不会拒绝连接,网络请求正常通过代理传输,抓包工具能捕获完整流量。
2. 抖音、懂车帝等难抓包的 App:多重防护拦截
- 强制校验系统根证书:大厂 App 会内置 “证书锁定(SSL Pinning,又称证书钉扎)” 机制,只信任 App 自带的官方根证书,拒绝信任用户手动安装的 Charles 证书。此时即使手机安装了抓包证书,App 的 HTTPS 请求也会因 “证书不被信任” 而中断,或返回加密 / 无效数据,抓包工具只能看到乱码或失败响应。
- 检测代理环境并阻断连接:App 会通过代码检测手机是否开启了代理(如检查系统代理设置、查看网络连接的 IP / 端口是否指向抓包工具),一旦发现代理,会直接关闭当前网络请求,或切换到不经过代理的 “直连模式”,导致抓包工具完全捕获不到流量。
- 使用私有协议或加密传输:部分核心接口(如登录、支付、IM 消息)会采用非标准 HTTP/HTTPS 协议(如自定义 TCP 协议、基于 gRPC 的私有加密),或在数据传输前用 App 自研的算法加密,即使抓包工具捕获到流量,也无法解析出真实内容。
二、深层原因:大厂对数据安全和反爬的强需求
- 保护用户隐私:抖音、懂车帝等 App 涉及大量用户行为数据、聊天记录、地理位置等隐私信息,通过阻止抓包可降低数据被恶意获取的风险。
- 防止接口滥用:其核心接口(如推荐算法、内容分发)是商业核心资源,若被轻易抓包分析,可能被竞争对手模仿,或被恶意调用(如批量爬取内容、刷数据),导致服务器负载过高或商业利益受损。
- 合规性要求:金融、社交类功能(如抖音的直播打赏、懂车帝的交易咨询)需符合监管对数据传输安全的要求,强制加密和防抓包是必要的安全措施。
三、如何突破防护(仅供学习,需遵守合规)
如果是合法的开发调试场景(如自家 App),可尝试以下技术手段(大厂 App 的防护会持续升级,方法可能失效):
- 绕过证书锁定:
- Android:通过 Xposed 框架(如 LSPosed)安装 “JustTrustMe” 模块,禁用 App 的证书校验;或对 App 进行反编译,移除证书锁定相关代码后重新打包。
- iOS:需要越狱设备,通过工具(如 SSL Kill Switch 2)禁用证书校验。
- 隐藏代理环境:
- 使用 “透明代理” 技术(如通过路由器设置全局代理),让 App 无法检测到代理存在;或修改抓包工具的端口、伪装成正常网络连接。
- 分析私有协议:若 App 使用自定义协议,可通过逆向工程(如反编译 App 的二进制文件)分析加密算法和协议格式,再针对性解码抓包数据。
但需注意:未经授权对他人 App 进行抓包、逆向等操作,可能违反《网络安全法》和平台用户协议,存在法律风险,仅建议在自己开发的 App 或获得授权的场景下操作。
总结来说,抓包成功率的差异本质是 “App 安全防护强度” 的差异 —— 防护弱的 App 容易被抓包,防护强的 App 会通过技术手段主动阻止,这是大厂保障数据安全的必然选择。
