抓包工具 - charles

也可参考如下博客:

https://blog.csdn.net/dongyuxu342719/article/details/78933618


一、charles是什么

1.Charles其实是一款代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的。

2.该软件是用Java写的,能够在WindowsMacLinux上使用。

3.支持抓去httphttps协议的请求,不支持socket

4.charles会自动配置IE浏览器和工具的代理设置,所以说打开工具直接就已经是抓包状态了

 

二、charles使用前准备

1.安装Charles的时候要先装好Java环境。

2.需要Mac上的破解版

3.需要下载根证书

4.移动设备如果想抓https的请求数据,需要安装ssl证书

5.代理设置 

 

下载地址和破解方法如下

Ø  下载地址:

https://www.charlesproxy.com/

Ø  破解方法:

关于抓包工具的Charles 破解方法【任何版本都有效】

破解地址:https://www.zzzmode.com/mytools/charles/

描述此工具用于生成破解后的charles.jar文件,blog介绍:https://blog.zzzmode.com/2017/05/16/charles-4.0.2-cracked用法输入RegisterName(此名称随意,用于显示 Registered to xxx),选择已安装的版本,点击生成,并下载charles.jar文件替换本地charles.jar文件macOS: /Applications/Charles.app/Contents/Java/charles.jarWindows:C:\Program Files\Charles\lib\charles.jar注意仅用于学习交流,请勿用于任何商业用途

 

 

三、SSL安装证书常见问题

1.ios 10.3以上Charleshttps的请求都会失败,提示错误信息为

Failure SSLHandshake: Received fatalalert: unknown_ca Youmay need to configure your browser or application to trust the Charles RootCertificate. 

解决方法是:

设置->通用->关于本机->证书信任设置,把安装的证书后面的开关打开。

注:虽然charles的根证书已经在安装列表中显示,但它是被关闭的。在iOS 10.3之前,当你将安装一个自定义证书,iOS会默认信任,不需要进一步的设置。而iOS 10.3之后,安装新的自定义证书默认是不受信任的。如果要信任已安装的自定义证书,需要手动打开开关以信任证书。

 

2.华为、小米手机有点特殊。

浏览器下载好证书后,不能直接安装,提示打不开文件,需要到设置-wifi,点击高级,安装证书

 

3.需要注意的是,即使是安装完证书之后,Charles 默认也并不截取 Https 网络通讯的信息,如果你想对截取某个网站上的所有 Https 网络请求,可以在该请求上右击,选择 Enable,如下图所示:

 四、Charles主要功能

·        支持SSL代理。可以截取分析SSL的请求。

·        支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。

·        支持重发网络请求,方便后端调试。

·        支持修改网络请求参数。

·        支持网络请求的截获并动态修改。

 

1.charles界面简介

1.clear

2.stop recording/start recording

3.start throtting/stop throtting

4.Enable breakpoints/disable breakpoints

5.compose

6.repeat

7.显示模式

charles抓包的显示,支持两种模式,StructureSequence,其特点分别如下。

(1)   Structure形式如下图优点:可以很清晰的看到请求的数据结构,而且是以域名划分请求信息的,可以很清晰的去分析和处理数据。

(2)  Sequence形式如下图优点:可以看到全部请求,这里的结果以数据请求的顺序来显示,最新的请求显示在最下面

 

2.常用功能介绍 

1)过滤网络请求

通常情况下,我们需要对网络请求进行过滤,只监控向指定目录服务器上发送的请求。对于这种需求,以下几种办法:

方法一:在主界面的中部的 Filter 栏中填入需要过滤出来的关键字。例如我们的服务器的地址是:http://wonapi.maxleap.com ,那么只需要在 Filter 栏中填入wonapi 即可。

方法二:在Charles 的菜单栏选择“Proxy”–>“Recording Settings”,然后选择 Include 栏,选择添加一个项目,然后填入需要监控的协议,主机地址,端口号。这样就可以只截取目标网站的封包了。如下图所示:

通常情况下,我们使用方法一做一些临时性的封包过滤,使用方法二做一些经常性的封包过滤。

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

 

2)模拟慢速网络

在做移动开发的时候,我们常常需要模拟慢速网络或者高延迟的网络,以测试在移动网络下,应用的表现是否正常。Charles 对此需求提供了很好的支持。

Charles 的菜单上,选择“Proxy”–>“Throttle Setting” 项,在之后弹出的对话框中,我们可以勾选上 “Enable Throttling”,并且可以设置 Throttle Preset 的类型。如下图所示:

 

如果我们只想模拟指定网站的慢速网络,可以再勾选上图中的 “Only for selected hosts” 项,然后在对话框的下半部分设置中增加指定的 hosts 项即可。

修改网络请求内容

3)修改网络请求内容

有些时候为了调试服务器的接口,我们需要反复尝试不同参数的网络请求。Charles 可以方便地提供网络请求的修改和重发功能。

1.在相应的网络请求上点击右键,选择 “beakpoints”

2.重新执行这个请求

3.点击edit,编辑请求,点击execute

4.进入编辑响应页面。点击execute

5.查看手机端响应结果。

 

 注意:compose也能达到相同效果,但仅针对当前此次请求。而打了断点,每次发送这个请求,都会要求你去编辑。

 

4)给服务器做压力测试

我们可以使用Charles Repeat 功能来简单地测试服务器的并发处理能力,方法如下。

我们在想打压的网络请求上(POST GET 请求均可)右击,然后选择Repeat Advanced」菜单项,如下所示:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章