一、简介
抓包就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包也经常被用来进行数据截取等。比较常用的抓包工具Fiddler ,但是由于 Fiddle 使用 C# 语言开发的,不支持 Mac OS 系统,今天给大家推荐一款Mac平台下的抓包申请Charles,Charles是使用 Java 语言开发的,跨平台,支持各个系统下的设备使用。
二、安装及破解
2.1、安装:官网地址http://www.charlesproxy.com/,直接下载安装即可,过程比较简单。
2.2、破解:官方版本只支持免费使用30天,可通过替换安装包内容中的 charles.jar 文件进行破解。
在线生成 charles.jar :https://www.zzzmode.com/mytools/charles/
三、界面介绍
3.1、工具导航栏
3.2、主界面视图
Structure: 此视图将网络请求按访问的域名分类。
Sequence: 此视图将网络请求按访问的时间排序。
Filter:请求多的时候会看不过来,Charles 提供了一个简单的 Filter 功能,可以输入关键字来快速筛选出 URL 中带指定关键字的网络
四、抓包
4.1、配置:打开Charles,点击上方菜单栏-->proxy,勾选macOS Proxy,此时已经可以监听PC端的一切网络连接及流量监控。
4.2、访问需要抓包的链接,开始抓取数据。
五、修改请求和返回报文
5.1、首先开启断点模式,在Charles的面板上方将断点的图标点亮
5.2、设置断点,选中要修改的请求-->右键-->BreakPoints (左面出现对勾表示设置成功),设置完成后,Charles再次抓取到该请求时会自动进入到调试模式。
5.3、进入调试模式后,点击Edit Request可以修改请求报文,点击Execute进行下一步(如不修改,直接点击Execute进行下一步)
5.4、请求报文发送成功后,Charles会拦截服务器返回的数据,这里可以点击Edit Response修改返回数据,点击Execute进行下一步(如不修改,直接点击Execute进行下一步)
六、模拟弱网
6.1、点击上方菜单栏-->Proxy-->Throttling Settings,打开Throttling Settings弹窗。
6.2、勾选Enable Throttling,开启限网功能。
6.3、如果只想对特定地址的请求进行弱网测试,,勾选Only for selected hosts,添加请求地址的信息。
6.4、在 Throttle Preset 下选择网络类型即可,具体设置可以根据实际情况自行设置。
6.5、也可以自定义网络设置。
配置参数解析:
Bandwidth :带宽,即上行、下行数据传输速度。
Utilisation :带宽可用率,大部分modern是100%。
Round-trip latency :第一个请求的时延,单位是ms。
MTU :最大传输单元,即TCP包的最大size,可以更真实模拟TCP层,每次传输的分包情况。
Releability :指连接的可靠性。这里指的是10kb的可靠率。用于模拟网络不稳定。
Stability : 连接稳定性,也会影响带宽可用性。用于模拟移动网络,移动网络连接一般不可靠。
七、解决乱码问题
在使用过程中,遇到乱码情况,在网上找解决方案,走了一些弯路,把最终解决方案整理如下。
7.1、上方菜单栏-->Help -->SSL Proxying-->Install Charles Root Certifica,进入钥匙串访问页面。
7.2、双击该行,进入下图:
7.3、点击“信任“,“加密套接字协议层(SSL)”一栏选择始终信任,关闭保存即可。
7.4、再次点击上方菜单栏 -->Proxy -->SSL Proxy Settings -->Add,维护Location信息,Host输入*(代表所有网站),Port输入443,点击ok即解决了乱码问题。