Charles抓包教程

一、Charles简介:

Charles 是在 PC 端常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。除了在做移动开发中调试端口外,Charles 也可以用于分析第三方应用的通讯协议。配合 Charles 的 SSL 功能,Charles 还可以分析 Https 协议。

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

Charles 是收费软件,可以免费试用 30 天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过 30 分钟,并且启动时将会有 10 秒种的延时。因此,该付费方案对广大用户还是相当友好的,即使你长期不付费,也能使用完整的软件功能。只是当你需要长时间进行封包调试时,会因为 Charles 强制关闭而遇到影响。

二、Charles功能:
  • 截取 Http 和 Https 网络封包。
  • 支持重发网络请求,方便后端调试。
  • 支持修改网络请求参数。
  • 支持网络请求的截获并动态修改。
  • 支持模拟慢速网络。

三、下载安装Charles:

打开浏览器访问 Charles 官网 ,下载相应系统的 Charles 安装包,然后安装即可,Charles 支持的操作系统包括:

  • Windows 64 bit(msi)
  • Windows 32 bit(msi)
  • macOS(dmg)
  • Linux 64 bit(tar.gz)
  • Linux 32 bit(tar.gz)
  • Windows: 运行安装应用程序以在程序菜单中安装 Charles。
  • Mac OS X: 通过双击解压缩下载文件,然后将 Charles 应用程序复制到 Applications 目录中。
  • Linux: Charles 拥有 APTYUM 存储库,如果你有基于 Debian 或基于 Red Hat 的 Linux 发行版,这是安装 Charles 的首选方法。否则,将 tar.gz 文件解压缩到适当的站点。如果您以前安装过 Charles 并且正在进行升级;首先确保 Charles 没有运行,然后安装或复制在以前安上。通过运行 bin/charles 脚本启动 Charles。

如果使用 Firefox,也可以下载 Firefox 插件。参考Firefox Add-On


四、Charles主界面介绍:
 
下图是Charles启动运行后主界面视图:

 

 1、Charles工具栏提供了常用的工具

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

2、Charles 主要提供两种查看的视图,分别名为 Structure(网络请求按访问的域名分类) 和 Sequence(网络请求按访问的时间排序),这两种视图可以随意的切换,有时候请求多了页面看不过来了,也可以通过使用Filter功能输入关键字来快速筛选出 URL 中带指定关键字的网络请求。
 
3、对于某一个具体的网络请求,你可以查看其详细的请求内容和响应内容。如果请求内容是 POST 的表单,Charles 会自动帮你将表单进行分项显示。如果响应内容是 JSON 格式的,那么 Charles 可以自动帮你将 JSON 内容格式化,方便你查看。如果响应内容是图片,那么 Charles 可以显示出图片的预览。
 
4、Charles主菜单上罗列了:FileEditViewProxyToolsWindowHelp,但是用的最多的还是 ProxyTools;这就跟Fiddler抓包工具大同小异了;
 
五、Charles抓包
1、Charles抓取PC端

Charles 会自动配置浏览器和工具的代理设置,打开工具直接就已经是抓包状态了。只需要保证一下几点即可:

1)确保 Charles 处于 Start Recording 状态。

2)勾选 Proxy | Windows Proxy 和 Proxy | Mozilla FireFox Proxy。 

 

2、Charles抓取移动端

1)首先确保手机和电脑处于同一网络环境(一个局域网内)

 

2)电脑端配置

a)  关掉电脑端的防火墙(这点很重要)。

b)打开 Charles 的代理功能:通过主菜单打开 Proxy | Proxy Settings 弹窗,填入代理端口(端口默认为 8888,不用修改),勾选 Enable transparent HTTP proxying。

c)  如果不需要抓取电脑上的请求,可以取消勾选 Proxy | Windows Proxy 和 Proxy | Mozilla FireFox Proxy。 

 

3) 手机端配置

a)  通过 Charles 的主菜单 Help | Local IP Address 或者通过命令行工具输入 ipconfig 查看本机的 IP 地址。

b)设置代理:打开手机端的 WIFI 代理设置,输入电脑 IP 和 Charles 的代理端口。

 

4)设置好之后,我们打开手机上的任意需要网络请求的程序,就可以看到 Charles 弹出手机请求连接的确认菜单(只有首次弹出),点击 Allow 即可完成设置。

 

5)完成以上操作基本就可以进行抓包了

 

3、Charles抓取HTTPS

 HTTPS 的抓包需要在 HTTP 抓包基础上再进行设置。需要完成一下步骤:

1)完成 HTTP 抓包配置。

2)电脑端安装 Charles 证书:通过 Charles 的主菜单 Help | SSL Proxying | Install Charles Root Certificate 安装证书。

3)设置 SSL 代理:通过主菜单打开 Proxy | SSL Proxy Settings 弹窗,勾选 Enable SSL proxying。

4)移动端安装 Charles 证书:通过 Charles 的主菜单 Help | SSL Proxying | Install Charles Root Certificate on a Mobile Device or Remote Browser 安装证书。

5)设置好之后,软件的任意网络请求,会有 Charles 弹出手机请求连接的确认菜单(只有首次弹出),点击 Allow 即可完成设置。

6)完成以上步骤,就可以进行 HTTPS 抓包了。 

上述第4步中的证书,网上也有现成的;“6485223a.0”是我找到的其中一个,显示的是1.86KB;由于对博客园随笔摸索的还不够,所以不知道怎么上传文件;

1)首先移动手机和电脑连接
2)win+R---输入CMD调出命令窗口
3)adb devices 找到设备
4)adb push 6485223a.0 /system/etc/security/cacerts/(加空格,完成后设备重启)这个路径是我们公司的

以上push进入就完成了

注意:charles暂仅支持wifi,不支持4G;

posted @ 2021-11-23 15:45  自身闲鱼  阅读(2127)  评论(0编辑  收藏  举报