Charles抓包工具使用介绍
Charles简介
Charles是一个http协议调试的代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯、设置断点、查看所有进出Charles数据的一款抓包工具
Charles主要功能包括:
- 截取 Http 和 Https 网络封包
- 支持重发网络请求,方便后端调试
- 支持修改网络请求参数
- 支持网络请求的截获并动态修改
- 支持模拟慢速网络
Charles的下载安装
本人使用的是64位windows操作系统,安装Charles4.2.0最新破解版本,安装包以及破解教程请参考如下地址,请根据自己当前系统下载安装
下载地址:https://www.52pojie.cn/thread-619994-1-1.html
设置代理抓包
Charles基础配置
安装完成后默认开启自动设置代理服务器,且端口默认为8888,用户可根据自身需要来自行设置或更改端口,其路径为Proxy —>Proxy Setting,勾选Enable transparent HTTP proxying
如下图
移动端配置
1、win+R键唤起运行窗口输入cmd点击确定,在弹窗内输入ipconfig敲下Enter键,找到自己当前的网络或者在Charles中依次点击“Help”—>“Local IP Address”获取地址,如图
2、手机端在无线网络中配置代理,输入该地址,输入Charles的端口即可配置完成,如图
Charles的视图模式
在Charles抓取到请求之后,有两种视图模式,见下图
1、按域名分类排列
2、按请求时间排序
过滤请求
1、Proxy —> recording setting —> include下设置要过滤的url,如下图
2、按url过滤
模拟慢速网络
在开发与测试的时候,我们常常需要模拟慢速网络或者高延迟的网络,以此测试在移动网络下,应用的表现是否正常;
选择 “Proxy”––>“Throttle Setting” 项,在之后弹出的对话框中,我们可以勾选上 “Enable Throttling”,并且可以设置 Throttle Preset 的类型;如果我们只想模拟指定网站的慢速网络,可以再勾选上图中的 “Only for selected hosts” 项,然后在对话框的下半部分设置中增加指定的 hosts 项即可,如图
简单压力测试
在请求上右键,选择repeated advanced,设置并发线程数及压测循环次数,可以对接口进行简单压测
修改服务器返回内容
有些时候我们想让服务器返回一些指定的内容,方便我们调试一些特殊情况。例如列表页面为空的情况,数据异常的情况,部分耗时的网络请求超时的情况等,Charles 提供了 Map 功能和 Breakpoints 功能,都可以达到修改服务器返回内容的目的。二者在功能上的差异是:
- Map 功能适合长期地将某一些请求重定向到另一个网络地址或本地文件
- Breakpoints 功能适合做一些临时性的修改。
1、Map 功能分 Map Remote 和 Map Local 两种,Map Remote 是将指定的网络请求重定向到另一个网址请求地,在 Charles 的菜单中,选择 “Tools”–>“Map Remote” 即可进入到相应功能的设置页面
对于 Map Remote 功能,我们需要分别填写网络重定向的源地址和目的地址,对于不需要限制的条件,可以留空;只填写host时只是重定向域名,访问路径不会变,Path输入框可以输入请求路径,Query输入框可以输入一些请求参数,如图
2、Map Local 是将指定的网络请求重定向到本地文件。在 Charles 的菜单中,选择 “Tools”—>“Map Local” 即可进入到相应功能的设置页面
对于 Map Local 功能,我们需要填写的重定向的源地址和本地的目标文件。对于有一些复杂的网络请求结果,我们可以先使用 Charles 提供的 “Save Response…” 功能,将请求结果保存到本地,然后稍加修改,成为我们的目标映射文件,Path输入框可以输入请求路径,Query输入框可以输入一些请求参数,如图
(1)先将其接口Save Response到本地,在本地打开文件将需要更改的内容加以修改并保存
(2)右键当前的接口选择 Map Local 选择刚才保存到本地的文件,如图
(3)重新请求当前接口 ,会发现数据已被更改
3、Breakpoints:先在请求上右键选择Breakpoint,然后proxy —> Breakpoints Setting —> 请求URl —>自动进入Charles断点(分别会有Edit Request和Edit Response),Edit request后execute会自动进入Response界面,可以修改返回数据,然后Execute,界面显示的便会是修改后的数据;需要注意的是,使用 Breakpoints 功能将网络请求截获并修改过程中,整个网络请求的计时并不会暂停,所以长时间的暂停可能导致客户端的请求超时
抓取https请求
1、安装官方证书,首次安装是未信任证书,需要手动设置成信任
路径:Help —> SSL Proxying —> Install Charles Root Certificate点击后安装即可
2、移动端连接Charles,在浏览器中输入chls.pro/ssl,此时会弹出一个弹窗,任意输证书名称,点击确认即可,如图
3、启动应用,Charles抓取到https的请求后,会无数据显示,此时需要在Charles中做如下配置,路径为Proxy —> SSL Proxying Setting添加需要抓取的域名,当配置成功后,再次请求即可抓到https数据