Charles是一款用于网络调试和分析的代理工具,可以拦截和查看设备与服务器之间的网络通信。其主要功能包括:
|功能
|截取http和https网络封包|可以捕获和分析HTTP和HTTPS流量|
|支持重发网络请求|方便后端调试|
|支持修改网络请求参数|可以修改请求参数进行测试|
|支持网络请求的截获并动态修改|在请求过程中进行修改|
|支持模拟慢速网络|可进行弱网测试|
|支持SSL代理|可以截取分析SSL的请求|
|支持流量控制|模拟不同的网络条件|
|支持AJAX调试|自动将json或xml数据格式化,方便查看|
|支持AMF调试|将Flash Remoting或Flex Remoting信息格式化,方便查看|
|检查HTML,CSS和RSS内容是否符合W3C标准|对内容进行标准检查|
二、Charles抓包工具的特色

Charles抓包工具具有以下特色:
|特色
|界面简单直观|易于上手,数据请求控制容易|
|支持多平台|支持macOS、Windows和Linux等多个平台|
|功能丰富|除基本抓包功能外,还有弱网测试、断点调试等功能|
|易于使用|操作相对简单,不需要复杂的配置即可开始抓包|
|支持https抓包|通过安装证书可以抓取https协议的请求|
|支持手机抓包|可以抓取来自App发出的HTTP请求|
三、Charles抓包工具的同类软件对比
以下是Charles与其他抓包工具的对比:
|工具名称|支持平台|优点|缺点|
|Wireshark|Windows、macOS、Linux|功能强大、支持多种协议解码、支持多平台、过滤器功能强大、免费开源|对于初学者来说,学习成本较高|
|Fiddler|Windows|易于安装、易于使用、支持多种扩展、可以提高开发效率|只支持Windows平台、需要一定的理解和学习|
|Burp Suite|Windows、macOS、Linux|功能强大、支持多种安全测试、支持多平台、易于使用|收费软件、价格较高|
|Tcpdump|多种Unix系统|功能强大、命令行界面灵活、易于使用|需要一定的命令行操作知识、没有图形界面|
|HttpWatch|Windows、macOS|易于使用、支持多种浏览器、提供了丰富的性能分析和优化功能|收费软件、价格较高|
|Mitmproxy|多种平台|免费开源、支持多种平台、功能丰富、易于使用|需要一定的理解和学习、没有图形界面|
|Tcpflow|多种Unix系统|命令行界面灵活、易于使用|需要一定的命令行操作知识、没有图形界面|
|Browser DevTools|多种浏览器|无需安装、易于使用、支持多种浏览器、提供了浏览器内置的开发者工具|功能相对简单、局限于浏览器端的流量捕获和分析|
|PacketTotal|基于Web|无需安装、易于使用、提供了丰富的数据包分析功能和恶意软件分析服务|需要网络连接、没有本地客户端|
四、Charles抓包工具的使用说明
1. 安装
从官网下载对应系统的Charles最新版本,双击下载的安装包,一路默认安装,安装完成会在桌面生成图标。
Charles是收费软件,可以免费试用一个月,可通过Charles -> Help -> Register Charles进行注册。
2. 配置
电脑端配置:
打开Charles -> Proxy -> Proxy Settings,设置代理端口(如8888),勾选Support HTTP/2和Enable transparent HTTP proxying,点击OK。
点击Proxy -> SSL Proxying Settings,勾选Enable SSL Proxying,点击Add添加,Host和Port都为(表示匹配所有),点击OK,重启Charles。
手机端配置(以iPhone为例):
手机和电脑连接到同一个WiFi网络。
设置 -> 无线局域网 -> 点击当前连接的WiFi -> 最底部HTTP代理 -> 配置代理 -> 勾选手动 -> 服务器 -> 填写电脑的IP地址(通过Charles -> Help -> Local IP Address获取) -> 端口 -> 8888 -> 存储。
手机下载安装Charles证书:help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or Remote Browser -> 手机浏览器输入chls.pro/ssl,下载安装证书。
IOS10以上系统需要在设置 -> 通用 -> 关于手机 -> 证书信任设置:信任证书。
3. 抓包
配置完成后,操作手机上的APP或者在电脑浏览器中访问,Charles就会开始抓包,在Charles界面中可以查看抓包的记录和详细信息。
五、Charles抓包工具的安装步骤
1. 下载Charles安装包:
访问Charles官方网站:
根据您的操作系统选择相应的版本下载。
2. 安装Charles:
双击下载的安装包,按照提示完成安装。
安装过程中可能需要您同意软件许可协议并选择安装路径。
3. 配置Charles:
启动Charles后,您可能需要进行一些基本配置,例如设置代理端口和启用SSL代理。
通常,Charles会自动检测并配置您的系统代理设置,但您也可以手动配置。
4. 安装根证书(如果需要):
为了能够捕获HTTPS流量,您需要安装Charles的根证书。
在Charles中,选择 "Help" -> "SSL Proxying" -> "Install Charles Root Certificate",然后按照提示完成证书安装。
5. 配置手机或其他设备:
如果您需要捕获来自移动设备或其他设备的流量,您需要在这些设备上配置代理设置,使其指向Charles运行的计算机。
具体配置步骤可能因设备和操作系统而异,但通常涉及到在设备的网络设置中手动配置代理服务器。
6. 开始抓包:
完成上述配置后,您可以开始使用Charles进行抓包。
在Charles的界面中,您可以看到捕获的网络请求和响应,以及详细的请求和响应数据。
六、Charles抓包工具的相关应用
基本功能应用
Web抓包:启动Charles后,它会自动与浏览器设置成代理,通过浏览器发送网络请求,Charles就会直接抓取到这些信息和响应信息。
App抓包:手机抓包需要在电脑端配置,并且手机和电脑在同一网络下。配置好后,操作手机上的APP,Charles就能抓取App发出的HTTP请求。
高级应用
弱网测试:通过Charles的 "Proxy" -> "Throttle Setting" 进行设置,勾选 "Enable Throttle",可以选择预设的网络情况或者自定义网络的上传和下载速率,模拟超慢网速进行测试。
修改请求和响应:可以在Charles中截获网络请求,并动态修改请求参数或者响应内容,方便进行调试和测试。
数据格式化:Charles支持自动将json或xml数据格式化,方便查看。
本地映射和远程映射:可以使用Charles的 "Map local" 和 "Map remote" 功能,将请求映射到本地数据或者重定向请求到其他服务器,用于测试和调试。