一、charles是什么?
1.Charles其实是一款代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的。
2.该软件是用Java写的,能够在Windows,Mac,Linux上使用。
3.支持抓去http、https协议的请求,不支持socket
4.charles会自动配置IE浏览器和工具的代理设置,所以说打开工具直接就已经是抓包状态了
二、charles使用前准备
1.安装Charles的时候要先装好Java环境。
2.需要Mac上的破解版
3.需要下载根证书
4.移动设备如果想抓https的请求数据,需要安装ssl证书
5.代理设置
下载地址和破解方法如下
Ø 下载地址:
Ø 破解方法:
关于抓包工具的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以上,Charles抓https的请求都会失败,提示错误信息为
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抓包的显示,支持两种模式,Structure和Sequence,其特点分别如下。
(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」菜单项