1. 简介
Charles 是在 Mac 下常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。
Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。
除了在做移动开发中调试端口外,Charles 也可以用于分析第三方应用的通讯协议。配合 Charles 的 SSL 功能,Charles 还可以分析 Https 协议。
2. Charles 主要的功能包括
2.1 工具栏
- 1. 清除会话
-
- 红点状态说明正在捕获请求,灰色:灰色状态说明目前没有捕获请求。
-
-
- 灰色状态说明是没有开启网速节流,绿色:绿色状态说明开启了网速节流。
-
- 灰色状态说明是没有开启断点,红色:红色状态说明开启了断点。
-
- 编辑修改请求,点击之后可以修改请求的内容。
-
- 重复发送请求,点击之后选中的请求会被再次发送
-
- 验证选中的请求的响应。
- 9.常用功能,包含了 Tools 菜单中的常用功能
- 10.常用设置,包含了 Proxy 菜单中的常用设置。
2.2 菜单栏Charles用的最多的主菜单分别是 Proxy
和 Tools
。
- File
- Edit
- View
- Proxy
- Tools
- Window
- Help
Proxy菜单包含以下功能:
- Start/Stop Recording:开始/停止记录会话。
- Start/Stop Throttling:开始/停止节流。
- Enable/Disable Breakpoints:开启/关闭断点模式。
- Recording Settings:记录会话设置。
- SSL Proxying Settings:SSL 代理设置。
- Throttle Settings:节流设置。
- Breakpoint Settings:断点设置。
- macOS Proxy: 选中是系统代理
- Proxy Settings:代理设置。
- Access Control Settings:访问控制设置。
- External Proxy Settings:外部代理设置。
- Web Interface Settings:Web 界面设置。
Tools菜单包含以下功能:
- No Caching Settings:禁用缓存设置。
- Block Cookies Settings:禁用 Cookie设置
- Map Remote Settings:远程映射设置。
- 例如: 访问测试环境时,把测试环境的js文件 map 到本地 127.0.0.1 运行服务的js 文件
- Map Local Settings:本地映射设置。
- 例如: 访问测试环境时,把测试环境的接口 map 到本地的数据文件
- Rewrite Settings:重写设置
- Black List Settings:黑名单设置。
- White List Settings:白名单设置。
- DNS Spoofing Settings:DNS 欺骗设置。
- Mirror Settings:镜像设置。
- Auto Save Settings:自动保存设置。
- Client Process Settings:客户端进程设置。
- Compose:编辑修改。
- Repeat:重复发包。
- Repeat Advanced:高级重复发包。
- Validate:验证。
- Publish Gist:发布要点。
- Import/Export Settings:导入/导出设置。
- Profiles:配置文件。
- Publish Gist Settings:发布要点设置。
3. 安装charles for mac
3.1 官网下载
下载好后,解压,将安装包拖到应用程序里,双击进行安装,打开Charles后会看到提示还有30天使用期限
激活charles
Charles激活码:
Registered Name: https://zhile.io
License Key: 48891cf209c6d32bf4
3.2 激活码使用步骤:
选择菜单 ---> help ---> register... ----> 输入账号和key提交破解成功就可以正常使用啦!
4. PC 使用抓包
4.1 网页抓包 (http请求)
启动 Charles 后,需要将 Charles 设置成系统代理,选择菜单中的 “Proxy” –> “macOS Proxy” 来将 Charles 设置成系统代理。如下图4.1:
图4.1
mac 打开网络偏好设置 --> 高级 --> 代理, 显示 网页代理(http) 和 安全网页代理(https) 是选中的。 自动发现代理 不选中(如实选中状态,要取消)。如下图4.2:
图4.2
这样你会发现,你通过浏览器请求的网址都会出现在这里。点击某一个网址后,你会发现右边会出现这个网址请求的大概信息,点击具体的请求后会出现request和response等信息。如下图4.3:
图4.3
如果是https请求出现的是乱码(图4.4),这时候你就需要安装Charles的CA证书了首先在这里: 菜单栏 --> help --> SSL Proxying --> install charles root certificate 下载CA证书文件。如果没有弹出则在钥匙串里找到 双击crt文件,选择总是信任就可以了,下图4.6 是信任过的,没信任过的 是红色标记。
图4.4
图4.5
图4.6
5. 手机抓包
Charles 通常用来截取本地上的网络封包,但是当我们需要时,我们也可以用来截取其它设备上的网络请求。下面讲解手机抓包如何进行相应操作。
5.1 Charles 设置
要截取 手机 上的网络请求,我们首先需要将 Charles 的代理功能打开。在 Charles 的菜单栏上选择 “Proxy”->”Proxy Settings”,填入代理端口 8888,并且勾上 “Enable transparent HTTP proxying” 就完成了在 Charles 上的设置。如下图5.1 所示:
图5.1
5.2 iPhone 上的设置
-
- 给iPhone安装 Charles 证书:通过 Charles 的主菜单 Help | SSL Proxying | Install Charles Root Certificate on a Mobile Device or Remote Browser 图5.21 , 图5.22 可以看到下载地址。
图5.21
图5.22
手机浏览器输入网址: chls.pro/ssl,即可下载完后自动安装证书到手机端。 在 设置 》通用 》 描述文件与设备管理》 里面是下载安装的证书 。 ios 安装成功后需要在 设置 》通用 》 关于本机 》 证书信任设置 》 选择信任 。 图5.23
-
- 手机和电脑需要连接的是同一个WIFI
-
- iOS手机代理设置
在 iPhone 的 设置 --> 无线局域网 中,可以看到当前连接的 wifi 名,通过点击右边的详情键,可以看到当前连接上的 wifi 的详细信息,包括 IP 地址,子网掩码等信息。在其最底部有「HTTP 代理」一项,我们将其切换成手动,然后填上 Charles 运行所在的电脑的 IP(可以在Charles的 工具栏 --> Help --> Local IP Address 查看),以及端口号 8888,如下图所示:
图5.24
- iOS手机代理设置
在 iPhone 的 设置 --> 无线局域网 中,可以看到当前连接的 wifi 名,通过点击右边的详情键,可以看到当前连接上的 wifi 的详细信息,包括 IP 地址,子网掩码等信息。在其最底部有「HTTP 代理」一项,我们将其切换成手动,然后填上 Charles 运行所在的电脑的 IP(可以在Charles的 工具栏 --> Help --> Local IP Address 查看),以及端口号 8888,如下图所示:
图5.24
-
当打开手机上的任意需要网络通讯的程序进行数据请求时,Charles 将弹出是否允许连接此代理(选择允许 allow (如下图5.25)),之后便可进行http抓包了。
图5.25
5.3 安卓手机 上的设置
-
- 给安卓手机安装 Charles 证书 手机浏览器输入网址: chls.pro/ssl,下载完后自动安装证书到手机端。 小米8:自带的浏览器下载 无法安装,提示 没有安装的证书。所以 先在uc下载证书, 在WF 里的高级设置, 有个安装证书,点击进去,左上角三个点 选择文件安装。
- 备注:部分手机直接点击证书是不能自动安装的,(如:OPPO A5)安装证书需在“设置”——>“其他设置”——>“设备与隐私”——>“从存储设备安装证书”——>找到下载证书所在的文件夹,点击证书进行安装(注意:有些人到这步卡住了,发现页面提示:无任何文件,亲,请点击左上角的三条横杆进行查找证书,整个抓包过程细节非常多,一不小心就掉到坑里了抓包失败)
- 安卓手机机型这么多,具体机型遇到问题了在查吧~
-
- 手机和电脑需要连接的是同一个WIFI 同iphone
-
安卓手机代理设置
- 不同安卓手机弹出设置代理入口不同,如果进入网络详情页无代理项,可在WLAN列表长按wifi名称弹出代理设置如下图5.31:
- 图5.31
4.当打开手机上的任意需要网络通讯的程序进行数据请求时,Charles 将弹出是否允许连接此代理(选择允许 allow (如图5.25)),之后便可进行http抓包了。
6. windows安装cherles, 下载证书可参考
参考:
macOS Charles 4.x版本的安装及使用(含破解激活)
Charles学习(一)之macOS Charles 4.x版本的安装、激活、使用以及软件功能了解
Charles4.6.2版本手机抓包设置,抓包失败的解决方法详解
开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 3 天,点击查看活动详情