Mac电脑上抓包工具使用教程
- 1.Charles简介
- 2.Sniff Master简介
- 3.Charles安装
- 4.将Charles设置成系统代理
- 5.Charles功能介绍
- 6.过滤网络请求
- 7.iphone手机抓包
- 8.android/iphone手机截取Https通讯信息
- 9.模拟慢速网络
- 10.修改网络请求内容
- 11.给服务器做压力测试
- 12.修改服务器返回内容
1.Charles简介
1.1 Charles是在Mac下常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。Charles通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。
1.2 除了在做移动开发中调试端口外,Charles也可以用于分析第三方应用的通讯协议。配合Charles的SSL功能,Charles还可以分析Https协议。
2.Sniff Master简介
2.1 Sniff Master是一款功能强大的跨平台抓包工具,支持Windows、Mac和Linux系统。相比Charles,Sniff Master在数据包分析方面提供了更专业的网络流量监控功能,特别适合网络安全分析人员使用。
2.2 Sniff Master的主要特点包括:
- 实时网络流量监控
- 深度数据包解析
- 支持多种协议分析
- 自定义过滤规则
- 数据包导出功能
3.Charles安装
去Charles官方网站下载最新版的Charles安装包,是一个dmg后缀的文件。打开后将Charles拖到Application目录下即完成安装。
4.将Charles设置成系统代理
启动Charles后,第一次Charles会请求你给它设置系统代理的权限。你可以输入登录密码授予Charles该权限。你也可以忽略该请求,然后在需要将Charles设置成系统代理时,选择菜单中的"Proxy" -> "MacOS Proxy"来将Charles设置成系统代理。
5.Charles功能介绍
1.1 视图 - Charles主要提供两种查看封包的视图,分别名为"Structure"和"Sequence"。 ①Structure视图将网络请求按访问的域名分类。 ②Sequence视图将网络请求按访问的时间排序。
1.2 快速筛选 - 可以根据具体的需要在这两种视图之前来回切换。Charles提供了一个简单的Filter功能,可以输入关键字来快速筛选出URL中带指定关键字的网络请求。
1.3 响应内容 - 对于某一个具体的网络请求,你可以查看其详细的请求内容和响应内容。如果请求内容是POST的表单,Charles会自动帮你将表单进行分项显示。如果响应内容是JSON格式的,那么Charles可以自动帮你将JSON内容格式化。
6.过滤网络请求
1.1通常情况下,我们需要对网络请求进行过滤,只监控向指定目录服务器上发送的请求。对于这种需求,以下几种办法: ① 在主界面的中部的Filter栏中填入需要过滤出来的关键字。 ② 在Charles的菜单栏选择"Proxy"->"Recording Settings",然后选择Include栏,选择add一个项目,然后填入需要监控的协议,主机地址,端口号。 ③ 在想过滤的网络请求上右击,选择"Focus",之后在Filter一栏勾选上Focussed一项。
7.iphone手机抓包
1.1Charles上的设置 ①要截取iPhone上的网络请求,我们首先需要将Charles的代理功能打开。在Charles的菜单栏上选择"Proxy"->"Proxy Settings",填入代理端口8888,并且勾上"Enable transparent HTTP proxying"就完成了在Charles上的设置。
1.2iPhone上的设置 ①首先我们需要获取Charles运行所在电脑的IP地址,Charles的顶部菜单的"Help"->"Local IP Address",即可在弹出的对话框中看到IP地址。 ②在iPhone的"设置"->"无线局域网"中,可以看到当前连接的wifi名,通过点击右边的详情键,可以看到当前连接上的wifi的详细信息。在其最底部有「HTTP代理」一项,我们将其切换成手动,然后填上Charles运行所在的电脑的IP,以及端口号8888。
8.android/iphone手机截取Https通讯信息
1.1安装证书如果你需要截取分析Https协议相关的内容。那么需要安装Charles的CA证书。 具体步骤如下: ①首先我们需要在Mac电脑上安装证书。点击Charles的顶部菜单,选择"Help" -> "SSL Proxying" -> "Install Charles Root Certificate"。
1.2截取移动设备中的Https通讯信息 ①如果我们需要在iOS或Android机器上截取Https协议的通讯内容,还需要在手机上安装相应的证书。点击Charles的顶部菜单,选择"Help" -> "SSL Proxying" -> "Install Charles Root Certificate on a Mobile Device or Remote Browser"。
9.模拟慢速网络
1.1在做移动开发的时候,我们常常需要模拟慢速网络或者高延迟的网络,以测试在移动网络下,应用的表现是否正常。Charles对此需求提供了很好的支持。①在Charles的菜单上,选择"Proxy"->"Throttle Setting"项,在之后弹出的对话框中,我们可以勾选上"Enable Throttling",并且可以设置Throttle Preset的类型。
10.修改网络请求内容
1.1有些时候为了调试服务器的接口,我们需要反复尝试不同参数的网络请求。Charles可以方便地提供网络请求的修改和重发功能。只需要在以往的网络请求上点击右键,选择"Compose",即可创建一个可编辑的网络请求。
11.给服务器做压力测试
1.1我们可以使用Charles的Repeat功能来简单地测试服务器的并发处理能力,方法如下。 ①我们在想打压的网络请求上(POST或GET请求均可)右击,然后选择「Repeat Advanced」菜单项 ②接着我们就可以在弹出的对话框中,选择打压的并发线程数以及打压次数,确定之后,即可开始打压。
12.修改服务器返回内容
1.1根据具体的需求,Charles提供了Map功能、Rewrite功能以及Breakpoints功能,都可以达到修改服务器返回内容的目的。 这三者在功能上的差异是: ①Map功能适合长期地将某一些请求重定向到另一个网络地址或本地文件。 ②Rewrite功能适合对网络请求进行一些正则替换。 ③Breakpoints功能适合做一些临时性的修改。