Charles抓包教程
一、Charles简介:
Charles 是在 PC 端常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。除了在做移动开发中调试端口外,Charles 也可以用于分析第三方应用的通讯协议。配合 Charles 的 SSL 功能,Charles 还可以分析 Https 协议。
Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。
Charles 是收费软件,可以免费试用 30 天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过 30 分钟,并且启动时将会有 10 秒种的延时。因此,该付费方案对广大用户还是相当友好的,即使你长期不付费,也能使用完整的软件功能。只是当你需要长时间进行封包调试时,会因为 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 拥有 APT 和 YUM 存储库,如果你有基于
Debian
或基于Red Hat
的 Linux 发行版,这是安装 Charles 的首选方法。否则,将tar.gz
文件解压缩到适当的站点。如果您以前安装过 Charles 并且正在进行升级;首先确保 Charles 没有运行,然后安装或复制在以前安上。通过运行bin/charles
脚本启动 Charles。
如果使用 Firefox,也可以下载 Firefox 插件。参考Firefox Add-On
四、Charles主界面介绍:
1、Charles工具栏提供了常用的工具
- :清除捕获到的所有请求
- :红点状态说明正在捕获请求,灰色状态说明目前没有捕获请求。
- :灰色状态说明是没有开启网速节流,绿色状态说明开启了网速节流。
- :灰色状态说明是没有开启断点,红色状态说明开启了断点。
- :编辑修改请求,点击之后可以修改请求的内容。
- :重复发送请求,点击之后选中的请求会被再次发送。
- :验证选中的请求的响应。
- :常用功能,包含了 Tools 菜单中的常用功能。
- :常用设置,包含了 Proxy 菜单中的常用设置。
2、Charles 主要提供两种查看的视图,分别名为
Structure(网络请求按访问的域名分类)
和 Sequence(网络请求按访问的时间排序),这两种视图可以随意的切换,有时候请求多了页面看不过来了,也可以通过使用Filter功能输入关键字来快速筛选出 URL 中带指定关键字的网络请求。
File
、Edit
、View
、Proxy
、Tools
、Window
、Help,但是用的最多的还是 Proxy
和Tools;这就跟Fiddler抓包工具大同小异了;
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;