1 2 3

Charles使用教程

一、官网下载最新版本的Charles

地址:https://www.charlesproxy.com/download/

二、安装成功配置证书:

 

1.抓包PC端

1.help-ssl proxying--install Charles root certificate

2.安装手机证书

1.help-ssl proxying--install Charles root certificate on a mobile device or remote browser
2.手机和mac共同在一个WiFi下,app浏览器输入地址chls.pro/ssl

安卓证书下载下来是一个 *.pem 的文件,我们需要重命名为 *.crt 文件,不然无法安装,有的浏览器直接下载下来就是 *.crt 文件,然后我们找到手机中的 加密与凭据,因为手机不同位置不同,可以多找找,找到后选择刚我们下载的证书配置进去就行了

如果你是小米的用户,而且出现了问你要“凭据存储的密码”的弹窗,请继续往下看。

小米手机对sdcard文件的存取,做了安全限制。如果你没有设置屏幕锁,或者没有开启屏幕锁,操作sdcard文件时会出现上面的提示(具体可参见http://www.miui.com/thread-3244178-1-1.html)。这时,你需要设置一下屏幕锁,再重新安装一下就行了。
要补充的是,在小米机器上,如果经过上述操作,.pem还是无法正常安装,请尝试把文件重命名为.crt,再重复上述操作

到这里,已经完成charles对https抓包的全部配置。正常的情况,你的charles会显示https的数据,并且没有乱码。如果按照上面的步骤,仍然无法抓https包,笔者建议你可以考虑重新装一个版本的charles了。

简言之,7.0以前,安卓系统默认是选择信任系统证书及用户证书的,我们安装的charles证书就是用户证书,然而到了7.0以后,安卓决定默认不信任用户自己安装的证书了(可能Google觉得用户都是小白,瞎几把装证书,所以一刀切了),所以我们现在即使装了证书系统也不信任,自然也抓不到包了。

iOS手机直接下载就是.crt,手机通用》描述文件〉安装即可

三、开启代理配置

1.proxy-macOS proxy
接下来打开Charles的代理设置:Proxy->Proxy Settings,设置一下端口号,默认的是8888,这个只要不和其他程序的冲突即可,并且勾选Enable transparent HTTP proxying。
查看charles的IP地址:在菜单栏中点击:Help->Local IP Address
终端:ifconfig | grep "inet"

四、模拟网速

1.开启proxy-start throttling
2.点击proxy-throttle

五、直接请求接口

1.鼠标点击structure,然后菜单栏点击tools-compose,会弹出一个请求输入框
把接口输入点击确定
2.点击这个接口,选择右边框中的左下角的headers,添加token进去和json格式参数
点击execute即可

六、破解

1.替换Charles安装文件下java文件的jar包

下载的是试用版,需要破解,把破解的jar包放在安装目录lib下,替换路径下对应的文件,然后重启,不再提示需要破解了。
破解文件在当前文件夹

2.输入激活码

获取激活码的网址:https://tools.zzzmode.com/mytools/charles/
Registered Name: https://zhile.io
License Key: 48891cf209c6d32bf4

选择菜单---> help---> register..... ---->输入下列序列码--->ok! (完美,prefect)

七、https抓包unknown问题

是因为ssl 代理配置没有配置该项目域名信息

配置上去就好了

比如下图:

APP使用操作系统api发https请求时对证书的验证一般是通过操作系统 自带的证书验证机制到CA服务器上检查证书合法性,这样就无法用charles来拦截https请求的数据了。
识别到证书不合法时客户端会断开连接。在APP上的表现就是请求失败。用charles拦截数据包的结果就是unkonws

posted @ 2022-01-12 10:56  teacher-程  阅读(504)  评论(0编辑  收藏  举报
levels of contents