安装破解链接:证书的安装:使用一:使用二: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,下载并安装证书如下图
点击下一步
继续下一步直到导入成功,
iv. 在手机上下载证书 :(1)点击Help-SSL Proxying-Install charles root certificate on a Mobile Device…如下:
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,如下图
i. 如果勾选了Proxy - Windows Proxy 的话,那么就会将电脑上的抓包请求也抓取到,如果只抓手机的话,可以将这个设置为不勾选。c) Charles 设置代理端口号如下:proxy –>Proxy Settings;端口这里写8888(这个是charles的默认设置),如果自己修改了就写成自己所修改的端口就可以了。
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 功能将网络请求截获并修改过程中,整个网络请求的计时并不会暂停,所以长时间的暂停可能导致客户端的请求超时。五、 Rewrite 功能 Rewrite 功能功能适合对某一类网络请求进行一些正则替换,以达到修改结果的目的。 例如,我们的客户端有一个 API 请求是获得日销售额,而我当前的日销售额是 “4498”,如下所示:
完成设置之后,我们就可以从 Charles 中看到,之后的 API 获得的昵称被自动 Rewrite 成了999999,如下图所示:
六、 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) 可以按已设置的各种网速下的选项进行测试,能测试出被测对象网络状况不太理想的状态。
,