charles 抓包工具使用汇总
安装破解链接:
证书的安装:
使用一:
使用二:
Charles****简介:
Charles是一款抓包神器,因为他是基于 java 开发的,所以跨平台,Mac、Linux、Window下都是可以使用的,确保安装之前已经安装了JDK。Charles
官网地址:https://www.charlesproxy.com
下载地址:https://www.charlesproxy.com/download/
一、 安装
a) 操作系统:Windows、MacOS
b) Java(JDK) 环境变量配置;
二、 抓包https包:
a) 在电脑上安装证书:点击Help-SSL Proxying-Install charles root certificate,下载并安装证书如下图




iv. 在手机上下载证书 :(1)点击Help-SSL Proxying-Install charles root certificate on a Mobile Device..如下:


Android 7.0以上 应用中配置如下:
Add a file res/xml/network_security_config.xml to your app:
<network-security-config>
<debug-overrides>
<trust-anchors>
<!-- Trust user added CAs while debuggable only -->
<certificates src="@raw/证书名称" />
</trust-anchors>
</debug-overrides>
</network-security-config>
Then add a reference to this file in your app's manifest, as follows:
在AndroidManifest.xml文件需要加入以下配置:
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application android:networkSecurityConfig="@xml/network_security_config" ... >
...
</application>
</manifest>
b) 设置SSL Proxying Location:点击Proxy-SSL Proxying Settings,在SSL Proxying选项卡界面点击Add添加--Host:*,Port:443,如下图

i. 如果勾选了Proxy - Windows Proxy 的话,那么就会将电脑上的抓包请求也抓取到,如果只抓手机的话,可以将这个设置为不勾选。

ii. 勾选了SOCKS proxy,还能截获到浏览器的http访问请求。
三、 Charles 主要提供两种查看封包的视图,分别名为 “Structure” 和 “Sequence”。
a) Structure形式如下图 优点:可以很清晰的看到请求的数据结构,而且是以域名划分请求信息的,可以很清晰的去分析和处理数据。

b) Sequence形式如下图 优点:可以很清晰的看到全部请求,不用一层一层的去点开,这里是以数据请求的顺序去执行的,也就是说那个请求快就在前面显示。

c) 过滤网络请求 通常情况下,我们需要对网络请求进行过滤,只监控向指定目录服务器上发送的请求。对于这种需求,以下几种办法: 方法一:在主界面的中部的 Filter 栏中填入需要过滤出来的关键字。例如我们的服务器的地址是:api-stage.gaojihealth.cn , 那么只需要在 Filter 栏中填入 api-stage.gaojihealth 即可。
方法二:在 Charles 的菜单栏选择 “Proxy”–>“Recording Settings”,然后选择 Include 栏,选择添加一个项目,然后填入需要监控的协议,主机地址,端口号,也可以在exclude栏添加不抓取包的地址。这样就可以只截取目标网站的封包了。如下图所示:

方法三:在想过滤的网络请求上右击,选择 “Focus”,之后在 Filter 一栏勾选上 Focussed 一项,如下图所示:

d) 这种方式可以临时性的,快速地过滤出一些没有通过关键字的一类网络请求;目的是将需要关注的网路请求和其他网络请求区分开 以上总结:通常情况下,使用方法一做一些临时性的封包过滤,使用方法二做一些经常性的封包过滤,方法三可以临时性的,快速地过滤出一些没有通过关键字的一类网络请求。
四、 Breakpoints 功能:临时修改一次网络请求结果
a) Breakpoints 功能类似我们在 程序中设置的断点一样,当指定的网络请求发生时,Charles 会截获该请求,这个时候,我们可以在 Charles 中临时修改网络请求的返回内容。
下图是我们临时修改获取用户信息的 report,将用户的日销售额进行了更改,修改完成后点击 “Execute” 则可以让网络请求继续进行。

ii. 需要注意的是,使用 Breakpoints 功能将网络请求截获并修改过程中,整个网络请求的计时并不会暂停,所以长时间的暂停可能导致客户端的请求超时。


六、 Map 功能
a) Charles 的 Map 功能分 Map Remote 和 Map Local 两种,Map Remote 是将指定的网络请求重定向到另一个网址请求地址,Map Local 是将指定的网络请求重定向到本地文件。 在 Charles 的菜单中,选择 “Tools”–>“Map Remote” 或 “Map Local” 即可进入到相应功能的设置页面。 对于 Map Remote 功能,我们需要分别填写网络重定向的源地址和目的地址,对于不需要限制的条件,可以留空。

b) MapLocal功能, 对某个已经抓到的包进行右击->Save Response;然后Tools->Map Local,添加网址和定向的文件地址。如下图:

七、 给服务器做压力测试。
a) 我们可以使用 Charles 的 Repeat 功能来简单地测试服务器的并发处理能力,方法如下。 我们在想打压的网络请求上(POST 或 GET 请求均可)右击,然后选择 「Repeat Advanced」菜单项,如下所示:

ii. 接着我们就可以在弹出的对话框中,选择打压的并发线程数以及打压次数,确定之后,即可开始打压。
八、 模拟网速
a) 依次点击proxy—throttle settings—勾选enable throttling—勾选only ....
b) 可以按已设置的各种网速下的选项进行测试,能测试出被测对象网络状况不太理想的状态。
