charles是一款http抓包软件,和fiddler极为相似,所以大家就会问,为啥不用fiddler呢,因为mac没有fiddler。而且charles还是付费版本。所以我们这里从安装破解到抓包成功一步一步讲清楚。
下载并安装
我们进入charles官网进行下载:https://www.charlesproxy.com/latest-release/download.do ,我是mac,所以选择其中的macOS
下载dmg包之后我们正常的安装,安装完成打开,大概就是这样的模样
破解
我们打开激活码生成界面: https://www.zzzmode.com/mytools/charles/ 其中RegisterName可以随意填写,然后点击生成即可获得激活码。接着我们从charles的菜单栏里进入: Help -> Register Charles 即可打开激活charles的入口 我们将生成的name和key填入,点击Register之后charles会被关闭,重新启动即完成激活了。
配置SSL证书抓https包
破解完成后我们回过头来看一下一开始打开charles的那个界面,里面全是unknow,原因是这些https请求需要配置SSL证书。我们从菜单进入:Help -> SSL Proxying -> Install Charles Root Certificate,点击会会弹出mac的用户钥匙界面 我们找到Charles的这个证书,当前是不被信任的,我们双击进入到信任设置界面
使用此证书时选择「始终信任」,设置后关闭即可,然后我们重新启动charles。
现在我们可以来做个测试,我们在百度上进行一个搜索
然后我们在charles中 「ctrl + F」 根据关键字搜索
就可以看到我们在哪些接口中有我们的关键字,然后我们在点击进入到具体的接口
可能有小伙伴会发现自己的测试效果有问题,显示的是如图所示的全是unknow
可能是因为没有设置要代理的域名和端口,我们从charles的菜单:Proxy -> SSL Proxying Settings打开之后进入这个弹窗
我们点击红框选中的Add可以配置需要进行抓包的地址
如果专门的限制的话,我们直接全部都填*即可。表示任意地址和任意端口都抓包。之后我们重复上面的测试流程再看看效果,应该就好了。
或许大家可能会说抓浏览器的包没有意义呀,懂点相关知识的都知道F12浏览器的开发工具里啥都有,哪里还需要抓包工具。我们可以在看一下,我电脑上启动的Apifox客户端,charles也会被抓到它的包,只要用的是http通讯,不管是网页还是客户端都可以看的一清二楚。
配置网络代理抓手机的包
能够实现抓PC端的包之后,我们可能还希望能够通过它去抓手机的包。首先我们需要去让电脑和手机处于同一局域网,比如用手机给电脑开个wifi,或者让他们连同一个wifi就好了。我们进入到手机wifi设置界面
我这里是长按可以编辑wifi,不同手机方式可能不太一样,打开类似如下界面 服务器主机名我们填写电脑的ip地址(mac在wifi设置界面就能看到自己的ip地址,window可以在cmd中输入ipconfig命令获取),服务器端口号填写charles的代理端口号,如果你没有修改过的话,默认是8888。保存后如果首次一般charles会弹出这个弹框。
点击Allow就好了。
这时我们可以去手机上尝试打开个网页之类的看看效果,但很可能不仅啥也抓不到,而且连网都上不了。原因也是现在的网络请求基本都是https的,所以需要配置SSL 证书才行。
给手机端安装SSL证书
我们还是从charles的菜单:Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or Remote Browser。然后他会弹出一个教程
大致意思是在手机上用浏览器打开 chls.pro/ssl 这个地址(这个地址不一定是这个,我看网上很多其实不是这个地址,所以还是大家自己点击到这个教程看一下)下载证书,然后安装并设置为手机的信任证书,我们打开这个网址
选择立即下载。之后我们去进行证书安装,这个步骤每种手机的入口都不太一样,大家可以在设置里找找"凭证"之类的字样,或者百度一下,我是华为P40所以以华为P40为例,从设置 -> 安全 -> 更多安全设置 -> 加密和凭证,选择从存储设备安装,华为p40有这个设置选项需要注意
这里需要选择VPN和应用。
以上就是基本全部完成了,我们我们尝试打开京东App进入到某个界面
然后charles就能抓取到相关的接口调用。 这个时候我们可以在换个app,比如盒马,我们会发现部分页面能打开,部分网页直接打不开了。抓的接口也都是unknow状态。这就是app本身做了反抓包的相关设计,这个后面再讲。
|