7.9 KiB
| title | date | tags | categories | author | |||
|---|---|---|---|---|---|---|---|
| Charles工具使用 | 2020-06-27 22:36:20 |
|
|
Anges黎梦 |
常用功能介绍和使用
Charles的功能很强大,这里只介绍几个常用的并且非常实用的功能:
1. Charles抓取pc内容功能 2. 截取移动设备上的网络请求包 3.手动重复请求 4.手动修改请求内容 5. 过滤网络请求 6. 代理转发 7.控制网速 8.黑名单功能
Charles 主要提供两种查看封包的视图,分别名为 “Structure” 和 “Sequence”
1. Structure 视图将网络请求按访问的域名分类 2. Sequence 视图将网络请求按访问的时间排序
Charles抓取pc内容功能
Charles 是通过将自己设置成代理服务器来完成抓包的,勾选系统代理后,系统本地发出去的请求都能被截取下来。
如果只抓取APP的包的话,可关闭此配置,这样不会出现太多的数据看着比较乱
mac下可通过Proxy —> macOS Proxy关闭
如果不需要使用也可从 Proxy—> Proxy setting 里将启动项关闭,
这样每次打开Charles时就会默认关闭/打开抓取pc内容的功能
截取移动设备上的网络请求包
我们在调试移动APP时,需要抓取APP发送的数据包,
首先进行设置:Proxy —> Proxy Settings 默认端口是8888,根据实际情况可修改
查看本机IP地址:Help —> Local IP Addresses
当手机连接代理的时候,Charles会弹出请求,问询是否同意抓包,如果不小心拒绝了,实际就无法抓包了,
但是可以从Proxy—>access control setting中添加当前手机的IP地址,就可以正常抓包了。
如果不想每换一个手机都要进行验证,可以配置允许所有手机访问,加入0.0.0.0/0(IPv4)或::/0(IPv6)
如果打开抓包工具,发现抓出的内容没有显示response和request的选项,点击设置
手动重复请求
Charles提供发送重复请求的功能,可以用这个功能做一些简单的压测,
选中链接后 右键可见:repeat,repeat advanced 或可在tools中找到。
Repeat:重复发包一次;选中链接点击repeat之后,即可将该请求重复一次,如需重发一个域名下的全部的请求,进入structure,选择域名之后点击repeat,即可全部请求。
repeat advanced:重发多次相同的请求,重发次数可设置。点击后弹出弹窗可进行重复的设置;同样可从structure里重发某个域名下的全部请求。
手动修改请求内容
1.compose
右键选择compose,即可修改参数和URL。修改完成点击execute即可执行。
2.breakpoint
右键选中需要的接口,点击breakpoint;点击之后进入proxy —>break settings,即可看到该接口,
双击该接口可修改接口相关的内容,修改后保存即可:
修改完成后,只要重新请求这个接口,就会打开一个新的窗口,
提供修改编辑该接口的功能(这里我只勾选了response,所以只能编辑response),编辑完成点击execute即可执行,
需要注意的是,一般客户端都会有个超时时间,所以需要很快的修改,不然有的时候可能修改就会不生效;
这个方法适合需要修改一些简单的内容。
3.map local
maplocal功能是平时常用的修改请求的方式,通过使某些接口走本地的方式,可以随机改变response或request里的内容,具体操作如下;
选择需要修改的URL,右键保存response:
在本地找到该请求,并修改想要修改的内容,修改完成后保存;在Charles里再次选中该链接;
右键并选择maplocal:
点击后会弹出新窗口,在local path中选择刚才保存并修改后的文件的路径(需要注意的是,这里最好删除Query里的内容,有些接口每次请求的时候可能有些参数是有些变化的,有可能会导致匹配不到);
选择完成保存后,再请求该接口,即可走到本地修改的路径下,达到修改请求内容的目的。
4.Rewrite
rewrite也可达到修改请求的效果,并提供批量替换的功能,如有需要可自行尝试;选择tools—>rewrite
在下面替换时,rewrite提供了可批量替换,替换某一个,和精准匹配的选项,可根据自己需要自行选择,这里不在仔细说明。
过滤网络请求
1.Filter
在Sequence界面的中部的Filter栏中填入需要过滤出来的关键字。(一般用于临时过滤)
2.Recording Settings
在Charles的菜单栏选择Proxy->Recording Settings,
然后选择Include栏,选择添加一个项目,然后填入需要监控的协议,主机地址,端口号。
这样就可以只截取目标网站(固定过滤地址)
3.Focus
右键需要的链接,点击focus(或者直接在view -> focused hosts中添加/修改)
加入focus后,点击focused,即可直接追踪这些链接。
代理转发
map remote
选择tools ->map remote,选择enable map remote,这个时候可以点击右下角add进行添加,
像这里我添加了bbs.hupu.com转发到test.bbs.hupu.com。
如果勾选enable后,请求该域名,可直接访问test环境,不需要切换hosts即可实现。
控制网速
Throttle Setting
点击proxy ->Throttle Setting,选择enable throtting,
下面提供了各种模式供选择,如果只想对某个hosts下的内容进行网速控制,也可勾选only for selected hosts进行添加。
概念介绍:Bandwidth(带宽)、Utilistation(利用百分比)、Round-trip(往返延迟)、MTU(最大传输单元)
3G:300k-2Mbps左右 2.5G(GPRS)一般在100kbps 2G(GSM)一般在5-9kbps
添加完成后,可看到顶部的小乌龟变了颜色,这个时候已经在进行网速控制了,可通过点击小乌龟取消网速控制;设置好之后,下次也可通过点击小乌龟快速开启网速控制。
黑名单功能
勾选黑名单,黑名单即使选择接口返回错误的形式(404 或者403)
弹出界面后选择enable,这里blocking action中可以选择drop connection”或者 “return 403 respose”选择第一个会直接返回404错误,第二个则返回403。

























