安装破解链接:证书的安装:使用一:使用二:Charles****简介:

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

charles抓包目的(抓包工具的使用简述)(1)

charles抓包目的(抓包工具的使用简述)(2)

点击下一步

charles抓包目的(抓包工具的使用简述)(3)

继续下一步直到导入成功,

charles抓包目的(抓包工具的使用简述)(4)

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

charles抓包目的(抓包工具的使用简述)(5)

charles抓包目的(抓包工具的使用简述)(6)

i. 在手机端设置代理,并在手机浏览器地址栏输入下图中地址:chls.pro/ssl或者charlesproxy.com/getssl 下载并安装证书,具体安装官方教程文档参考:https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/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,如下图

charles抓包目的(抓包工具的使用简述)(7)

i. 如果勾选了Proxy - Windows Proxy 的话,那么就会将电脑上的抓包请求也抓取到,如果只抓手机的话,可以将这个设置为不勾选。c) Charles 设置代理端口号如下:proxy –>Proxy Settings;端口这里写8888(这个是charles的默认设置),如果自己修改了就写成自己所修改的端口就可以了。

charles抓包目的(抓包工具的使用简述)(8)

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

charles抓包目的(抓包工具的使用简述)(9)

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

charles抓包目的(抓包工具的使用简述)(10)

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

charles抓包目的(抓包工具的使用简述)(11)

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

charles抓包目的(抓包工具的使用简述)(12)

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

下图是我们临时修改获取用户信息的 report,将用户的日销售额进行了更改,修改完成后点击 “Execute” 则可以让网络请求继续进行。

charles抓包目的(抓包工具的使用简述)(13)

ii. 需要注意的是,使用 Breakpoints 功能将网络请求截获并修改过程中,整个网络请求的计时并不会暂停,所以长时间的暂停可能导致客户端的请求超时。五、 Rewrite 功能 Rewrite 功能功能适合对某一类网络请求进行一些正则替换,以达到修改结果的目的。 例如,我们的客户端有一个 API 请求是获得日销售额,而我当前的日销售额是 “4498”,如下所示:

charles抓包目的(抓包工具的使用简述)(14)

完成设置之后,我们就可以从 Charles 中看到,之后的 API 获得的昵称被自动 Rewrite 成了999999,如下图所示:

charles抓包目的(抓包工具的使用简述)(15)

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

charles抓包目的(抓包工具的使用简述)(16)

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

charles抓包目的(抓包工具的使用简述)(17)

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

charles抓包目的(抓包工具的使用简述)(18)

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

charles抓包目的(抓包工具的使用简述)(19)

,