charles抓包工具是基于HTTP请求中间人代理,通过和服务端、客户端建立通信将客户端的请求数据发送服务器,并将响应数据传输给客户端,实现抓包记录,最最最...我想推荐的原因是...它很简洁...这很苹果
下载安装
charles支持windows、macOS、linux等多个版本
Download
最下面还展示了下载firefox插件,看描述的意思是firefox旧版本可能会需要下载charles的插件来支持抓包,新版本就不需要下载了,大家可以根据自己的环境进行配置。这里作者是macOS,就安装了mac版,以下内容都以mac版charles作为基础,windows基本一样。
面板介绍
可以将charles的分为以下几个模块:
- 菜单栏:一些全局相关的配置,如:偏好设置、记录显示与编辑、记录展示方式、代理配置、常用的工具、帮助等等
- 工具栏:快捷设置菜单,如:清除记录、开关记录、开启弱网、断点设置、执行请求、重新请求等等
- 抓包记录:显示抓包的记录,可以以域名归类记录也可以按请求顺序展示记录,单击会显示右侧的详情面板,右击有一些菜单功能
- 请求详情:请求详情来显示当前请求的具体信息,如:请求头、响应主体、请求主体、TLS、Timing(一些请求连接时间)、size、状态码等等信息,还可以用不同类型格式查看请求或响应内容
接下来分别具体讲讲每个模块的使用
菜单栏
菜单栏相对来说比较重要,它来控制charles全局,可以导入导出记录、设置记录查看方式、设置代理(重要)、常用工具、证书安装等等
.chlsStructure(用域名归纳请求,类似于嵌套文件夹,个人喜欢这种风格的)Sequence(请求顺序)http://192.168.3.58:9999/cookiehttp://192.168.3.58:9999
工具栏
工具栏主要是一些快捷设置菜单栏,如:清除记录、开关抓包、ssl开关、网速配置、断点设置、手动请求、重新请求、一些配置等等,基本上在菜单栏已经介绍的差不多了,这里自己手动操作一遍就可以了
抓包记录
Filter
抓包详情
抓包详情通常就是我们用来分析返回来的内容和一些请求信息等,前端可以根据请求相关时间做一些优化
请求代理与篡改
ToolsMap Remote & Map Local & Rewrite
断点调试
Enable BreakpointBreakpoint Setting
http://192.168.3.58
Execute
以上就是断点调试的基本使用,其他的可以根据自己的需求进行配置即可
弱网测试
charles可以模拟不同的网络环境,很方便进行网速相关的测试如:超时、断网等等。这一点相比fiddler,charles内部已经内置了集中网络环境,而fiddler则需要改代码,不是很友好。
Start ThrottleThrottle Setting
5kb
配置HTTPS
https://www.baidu.com
配置HTTPS步骤:
Help > SSL Proxying > Install Charles Root CertificateProxy > SSL Proxying Settings > Enable SSL ProxyingIP为*端口为443
再次查看抓取的HTTPS请求,已经完美解码了
客户端抓包
配置客户端抓包首先需要和主机在同一局域网下,并且基于HTTPS步骤,主要步骤如下:(这里以ios为例)
192.168.3.58:7777Proxy > Access Control SettingHelp > SSL Proxying > Install Charles Root Certificate On a Mobile Device...chls.pro/sslchls.pro/ssl关于手机 > 证书 > 信任证书https://www.lvtao.net
以上便是ios的配置抓包流程,其他手机系统大同小异
常见问题:
chls.pro/sslPC防火墙https关于手机 > 证书 > 信任证书Help > SSL Proxying > Save Charles Root Certificate...charles-ssl-proxying-certificateopenssl x509 -subject_hash_old -in charles-ssl-proxying-certificate.peme0e0666fcharles-ssl-proxying-certificate.peme0e0666f.0/system/etc/security/cacerts/
附:adb安装CA证书文件
brew install --cask android-platform-toolsadb devicesadb -s 设备ID rootadb -s 设备ID push e0e0666f.0 /system/etc/security/cacerts/adb -s 设备ID shell
su
chmod 644 /system/etc/security/cacerts/e0e0666f.0
ls -l /system/etc/security/cacerts/e0e0666f.0
这样就可以啦...