1. 环境
- macOS 10.15.7
- google chrome 112.0.5615.137
- charles 4.6.3
- 微信 PC 客户端 3.7.1
2. 问题
在使用charles抓包时,对于ssl通讯的网站,是不能直接抓到有效信息的。在charles会提示证书不被信任等。 另外一个问题,如果要抓本地运行程序的数据包,如微信桌面版,还要做一个小修改。
3. 解决
3.1 抓不要电脑应用数据的问题
首先要修改微信客户端的代理设置,如图
注意,这里填写的IP,不能写127.0.0.1,虽然都是运行在本机网络,填写127.0.0.1的数据包不会通过charles。 截图的填写的代理IP是charles获取,也就是本机的私网IP,获取方法如图
同时,修改电脑的网络设置里的代理配置,不知道charles是不是这里有bug,它默认会设置代理IP是127.0.0.1,这样也导致抓取数据失败,如:微信里打开的小程序,估计是没有走微信客户端的代理配置的,仍是走的全局系统的代理设置。所以要保持IP一致一并修改,端口默认是8888不用改。
这样配置之后,就可以抓取本机应用,如微信的通讯数据包了。
3.2 证书问题
在macOS下证件不被信任的问题,需要电脑上对charles root证书授权完全信任即可。
首先安装charles root证书,如图
证书配置完全信任,如
经过上述配置后,即可抓到正确的通讯包了。