1、介绍
Charles是一款代理服务器,通过过将自己设置成系统(电脑或者浏览器)的网络访问代理服务器,然后截取请求和请求结果达到分析抓包的目的。
该软件是用Java写的,能够在Windows,Mac,Linux上使用。
安装Charles的时候要先装好Java环境。
2、主要功能
截取Http 和 Https 网络封包。
支持重发网络请求,方便后端调试。
支持修改网络请求参数。
支持网络请求的截获并动态修改。
支持模拟慢速网络。
3、 charles的下载和安装
直接百度进入官网下载,然后正常安装即可
(Charles 是收费软件,可以免费试用 30 天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过 30 分钟,并且启动时将会有 10 秒种的延时。
因此,该付费方案对广大用户还是相当友好的,即使你长期不付费,也能使用完整的软件功能。只是当你需要长时间进行封包调试时,会因为 Charles 强制关闭而遇到影响。)
4、破解安装:
当正常安装好charles之后,进入安装目录lib文件夹下,替换charles.jar文件,即可永久使用charles
最后:附上链接~~~
链接:https://pan.baidu.com/s/1Vkln5xoo0A8tiYKjn--82Q
提取码:bolf
5、后面就可正常运行charles进行抓包使用了
5.1 将Charles设置成系统代理
Charles 是通过将自己设置成代理服务器来完成抓包的,勾选系统代理后,系统本地发出去的请求都能被截取下来。如果只抓取APP的包的话,可关闭此配置
注意:Chrome 和 Firefox 浏览器默认并不使用系统的代理服务器设置,而 Charles 是通过将自己设置成代理服务器来完成封包截取的,
所以在默认情况下无法截取 Chrome 和 Firefox 浏览器的网络通讯内容。
如果你需要截取的话,在 Chrome 中设置成使用系统的代理服务器设置即可,或者直接将代理服务器设置成 127.0.0.1:8888
5. 2. 截取移动设备上的网络请求包
进行设置,Proxy -> Proxy Settings默认端口是8888,根据实际情况可修改。Help -> Local IP Addresses---可快捷查看本机IP
记得手机也要进行设置代理:(同fiddler,具体过程百度一下吧)
打开要调试的APP,请求就会先发送到Charles,然后验证是否允许访问。
当点击允许后,可以在Proxy -> Access Control Settings里看到可以访问此代理服务器列表
如果不想换一个手机都要进行验证,可以配置允许所有手机访问,加入0.0.0.0/0(IPv4)或::/0(IPv6)
5.2.1手动重复请求(Repeat,Advanced Repeat)
5.2.2手动模拟请求(Compose)
5.2.3修改网络请求内容(Compose)
5.3. 过滤网络请求
网络请求是非常大量的,从几十个请求里找到我们需要的观察的某个请求比较费时,那么我们就需要对网络请求进行过滤,只监控向指定目录服务器上发送的请求。
有两种方法:
1. 在Sequence界面的中部的Filter栏中填入需要过滤出来的关键字。例如我们的服务器的地址是:*.leautolink.com,那么只需要在Filter栏中填入leautolink即可。(一般用于临时过滤)
2. 在Charles的菜单栏选择”Proxy”->”Recording Settings”,选择Include栏,添加一个项目,填入需要监控的协议,主机地址,端口号。就可以只截取目标网站的封包了(固定过滤地址)
5. 4. 代理转发
右键 -> Map Remote,并且配置Tools -> Map Romote(出处:服务端线上版本有bug,你在本地修改程序后,需要模拟实际的线上环境,来验证程序的正确性,这样避免了通过客户端去临时修改请求来调用,这样可以自己直接来模拟测试一下)
5.5. 支持https请求抓包
(同fiddler)操作如下:
双击打开Charles Proxy CA
手机配置完代理(必须的操作)后,浏览器打开http://chls.pro/ssl (如果不想用了之后,手机删除证书位置:设置->通用->描述文件与设备管理,删除指定的证书)
Proxy -> SSL Proxying Settings… 添加要抓取的https请求