抓包工具---Charles配置

简介

简介
Charles 是在 Mac 下常用的网络封包截取工具,在做 移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。

Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。

除了在做移动开发中调试端口外,Charles 也可以用于分析第三方应用的通讯协议。配合 Charles 的 SSL 功能,Charles 还可以分析 Https 协议。

Charles 主要的功能包括:

1.截取 Http 和 Https 网络封包。

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

3.支持修改网络请求参数。

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

5.支持模拟慢速网络。

将 Charles 设置成系统代理

之前提到,Charles 是通过将自己设置成代理服务器来完成封包截取的,所以使用 Charles 的第一步是将其设置成系统的代理服务器。

启动 Charles 后,第一次 Charles 会请求你给它设置系统代理的权限。你可以输入登录密码授予 Charles 该权限。你也可以忽略该请求,
然后在需要将 Charles 设置成系统代理:
1.Charles>Proxy > Proxy Settings menu (this defaults to “8888”). 来将 Charles 设置成系统代理。

2.System Preferences > Network > Advanced > Proxies.主机地址改成127.0.0.1:8888,端口号要和第一步中的端口号一致(直接将代理服务器设置成127.0.0.1:8888)
因为,Chrome 和 Firefox 浏览器默认并不使用系统的代理服务器设置,而 Charles 是通过将自己设置成代理服务器来完成封包截取的,所以在默认情况下无法截取 Chrome 和 Firefox 浏览器的网络通讯内容。如果你需要截取的话,在 Chrome 中设置成使用系统的代理服务器设置即可,或者直接将代理服务器设置成 127.0.0.1:8888 也可达到相同效果。

如下图

Mac设置代理

Charles 主界面介绍

在这里插入图片描述

Charles工具导航栏

菜单导航栏下面为工具导航栏。视图如下图所示:
工具导航栏
详细讲解看: 抓包工具Charles使用指南二:Charles主界面介绍和基础配置.

工具导航栏中提供了几种常用工具:

1、清除捕获到的所有请求
2、红点状态说明正在捕获请求,灰色状态说明目前没有捕获请求。
3、上锁说明开启了SSL Proxying,打开锁说明没有开启SSL Proxying。
4、绿色状态说明开启了网速节流,灰色状态说明是没有开启网速节流。
5、红色状态说明开启了断点,灰色状态说明是没有开启断点。
6、编辑修改请求,点击之后可以修改请求的内容。
7、重复发送请求,点击之后选中的请求会被再次发送。
8、验证选中的请求的响应。
9、常用功能,包含了 Tools 菜单中的常用功能。
10、常用设置,包含了 Proxy 菜单中的常用设置。

Charles视图、Filter

Charles视图

Charles 主要提供两种查看封包的视图,分别名为 “Structure” 和 “Sequence”。

1.Structure 视图将网络请求按访问的域名分类。

2.Sequence 视图将网络请求按访问的时间排序。

大家可以根据具体的需要在这两种视图之前来回切换。

对于某一个具体的网络请求,你可以查看其详细的请求内容和响应内容。如果请求内容是 POST 的表单,Charles 会自动帮你将表单进行分项显示。如果响应内容是 JSON 格式的,那么 Charles 可以自动帮你将 JSON 内容格式化,方便你查看。如果响应内容是图片,那么 Charles 可以显示出图片的预览。

Filter,过滤网络请求

请求多了有些时候会看不过来,Charles 提供了一个简单的 Filter 功能,可以输入关键字来快速筛选出 URL 中带指定关键字的网络请求。

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

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

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

2

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

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

方法3
这种方式可以临时性的,快速地过滤出一些没有通过关键字的一类网络请求。

Charles 菜单介绍

Charles 的主菜单包括:File、Edit、View、Proxy、Tools、Window、Help。用的最多的主菜单分别是 Proxy 和 Tools。
菜单

Proxy 菜单

Charles 是一个 HTTP 和 SOCKS 代理服务器。代理请求和响应使 Charles 能够在请求从客户端传递到服务器时检查和更改请求,以及从服务器传递到客户端时的响应。下面主要介绍 Charles 提供的一些代理功能。Proxy 菜单的视图如下图所示:
在这里插入图片描述
Proxy 菜单包含以下功能:

Start/Stop Recording:开始/停止记录会话。
Start/Stop SSL Proxying:开始/停止SSL代理。
Start/Stop Throttling:开始/停止节流。
Enable/Disable Breakpoints:开启/关闭断点模式。
Recording Settings:记录会话设置。
SSL Proxying Settings:SSL代理设置。
Throttle Settings:节流设置。
Breakpoint Settings:断点设置。
Reverse Proxies Settings:反向代理设置。
Port Forwarding Settings:端口转发设置。
macOS Proxy:记录计算机上的所有请求。
Proxy Settings:代理设置。
Access Control Settings:访问控制设置。
External Proxy Settings:外部代理设置。
Web Interface Settings:Web 界面设置。

Recording Settings(记录会话设置)

Recording Settings 和 Start/Stop Recording 配合使用,在 Start Recording 的状态下,可以通过 Recording Settings 配置 Charles 的会话记录行为。Recording Settings 的视图如下图所示:
在这里插入图片描述
Recording Settings 有 Options、Include、Exclude 三个选项卡:

Options:通过 Recording Size Limits 限制记录数据的大小。当 Charles 记录时,请求、响应头和响应体存储在内存中,或写入磁盘上的临时文件。有时,内存中的数据量可能会变得太多,Charles 会通知您并停止录制。在这种情况下,您应该清除 Charles 会话以释放内存,然后再次开始录制。在录制设置中,您可以限制 Charles 将记录的最大大小; 这根本不会影响你的浏览,Charles 仅会停止录制。
Include:与配置的地址匹配的请求才会被录制。
Exclude:与配置的地址匹配的请求将不会被录制。
Include 和 Exclude 选项卡的操作相同,选择 Add,然后填入需要监控的Procotol、Host 和 Port等信息,这样就达到了过滤的目的。如下图所示:
在这里插入图片描述
还有一种方法就是在一个请求网址上右击选择 Focus,然后其他的请求就会被放到一个叫 Other Host 的分类里面,这样也达到了过滤的目的。

Breakpoint Settings(断点设置)

Breakpoint Settings 和 Enable/Disable Breakpoints 配合使用,在 Enable Breakpoints 的状态下,可以通过 Breakpoint Settings 配置 Charles 的断点模式。Breakpoint Settings 的视图如下图所示:
在这里插入图片描述
勾选 Enable Breakpoints 启用断点模式,选择 Add,如下图所示在这里插入图片描述

然后填入需要监控的Scheme、Procotol、Host 和 Port 等信息,这样就达到了设置断点的目的。然后可以来观察或者修改请求或者返回的内容,但是在这过程中需要注意请求的超时时间问题。或者可以在某个想要设置断点的请求网址上右击选择 Breakpoints 来设置断点。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值