作者:baiyanan862273 | 来源:互联网 | 2023-09-06 16:29
之前在windows上用fiddler来进行分析,由于fiddler没有mac版本,所以现在在mac上面又做了一份charles的文档。WiFi代理的基本配置方法大多数APP直接采
之前在windows上用fiddler来进行分析,由于fiddler没有mac版本,所以现在在mac上面又做了一份charles的文档。
WiFi代理的基本配置方法
大多数APP直接采用WiFi代理配置就可以了。
电脑端,在charles的proxy --> SSL proxying setting 里面打开Enable SSL Proxying 就可以了,在下面的include里面最好加一下*:443
手机端,Android在WiFi下面长按,然后修改代理,将代理改到手动,并修改IP地址到电脑的IP地址,端口到系统配置的默认8888端口。如果找不到这个端口,可以在proxy --> proxy setting里面查看
配置完成之后,如果没有问题,手机上访问的一些APP或者网页就已经可以在charles中查看到了。
但是这里会发现几个问题:
- https捕获到的是乱码
- 有些APP的请求根本无法捕获到,获取的是一些没用的请求
配置SSL
IOS 配置
电脑端配置
安装一下Install Charles Root Certificate. 点击之后会弹出安装,输入电脑密码之后即可。
安装完了之后也不是就可以了,还需要去钥匙串中将此证书改为始终信任
手机端配置
在配置了WiFi手动代理之后访问 chls.pro/ssl ,之后会自动弹出安装,弹出一堆确认之后就会加载到证书中去。但是当前版本的IOS更新了一个证书策略,需要开启一下,在设置 --> 通用 --> 证书信任设置,在里面把安装进去的新证书装上就可以了。
配置完成之后在charles中就可以看到https里面的相关内容了。
Android 配置
Android配置也是访问 chls.pro/ssl,然后在设置中安装本地证书就可以了。 但是我在Android中遇到了问题,不论怎么安装,charles中都显示证书不正确。查了网上一些说明都说新版本的Android添加的用户证书不能改成授信任证书。 解决方法可以去网上查一下,大多数使用几种:
- 使用fiddler+Xposed+JustTrustMe: 这种方法最好使用Android虚拟机安装,实体机上安装很麻烦,容易出错导致手机系统奔溃。
- 进入系统命令控制行,将用户证书转为系统证书,然后再授信。
这两种方案网上都有,如果需要的话可以自行搜索
以上两个完了也解决不了第二个问题,有不少APP是查看不到包的,这种如何解决
Charles 或 fiddler 部分APP包截取不到的解决方案
部分APP无法代理抓包的原因及解决方法
原因: 总结出来就是部分APP没有遵从系统代理,而是自己走了自己的通道,这样这些数据就不从手动代理配置的IP那里走,直接从WiFi传输出去了,这样charles就查看不到了。
解决方法:
IOS
IOS 可以装一个ShadowRocket。将全局请求强制转向代理就可以了。
电脑端配置
电脑端在proxy 里面的 proxy settings 中需要把Socks proxy 打开
手机端配置
下载shadowrocket是个比较麻烦的事情,因为国内的市场是没有这款APP的,需要使用美区账号访问,然后美区账号又比较难弄,经常用的可以去淘宝买一个。 另外一种方法就是使用爱思助手去安装。由于我的手机是测试机,所以无所谓,可以直接装,平常常用的手机还是不要用这种软件比较好,估计会让手机的安全性降低。
这样配置完成后,记得把WiFi那里的手动代理给关掉,否则可能会出错。 完成之后就能查看到手机上所有的数据包了。
Android
Android可以去下一个drony , 然后在配置里面添加上手动代理地址就可以了。
由于Android SSL 证书配置实在太麻烦了,有需要的可以晚上查找一下配置,在这里就不多写了。
总结
总得来说用
原文链接:https://www.cnblogs.com/yourwilliam/p/charles--shadowrocketdrony-shou-jiappandroidios-pa.html