Charles 详细功能介绍和使用教程

740 阅读7分钟

1. 简介

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

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

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

2. Charles 主要的功能包括

1.png

2.1 工具栏

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

2.2 菜单栏Charles用的最多的主菜单分别是 Proxy 和 Tools

  • File
  • Edit
  • View
  • Proxy
  • Tools
  • Window
  • Help

Proxy菜单包含以下功能:

 Proxy.png

  • 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菜单包含以下功能:

Tools.png

  • 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 官网下载

load.png

下载好后,解压,将安装包拖到应用程序里,双击进行安装,打开Charles后会看到提示还有30天使用期限

load2.png

激活charles

Charles激活码:

Registered Name: https://zhile.io

License Key: 48891cf209c6d32bf4

3.2 激活码使用步骤:

选择菜单 ---> help ---> register... ----> 输入账号和key提交破解成功就可以正常使用啦!

01.png

02.png

4. PC 使用抓包

4.1 网页抓包 (http请求)

启动 Charles 后,需要将 Charles 设置成系统代理,选择菜单中的 “Proxy” –> “macOS Proxy” 来将 Charles 设置成系统代理。如下图4.1:

图4.1 4.1.png

mac 打开网络偏好设置 --> 高级 --> 代理, 显示 网页代理(http) 和 安全网页代理(https) 是选中的。 自动发现代理 不选中(如实选中状态,要取消)。如下图4.2:

图4.2 4.2.png

这样你会发现,你通过浏览器请求的网址都会出现在这里。点击某一个网址后,你会发现右边会出现这个网址请求的大概信息,点击具体的请求后会出现request和response等信息。如下图4.3:

图4.3 4.3.png

如果是https请求出现的是乱码(图4.4),这时候你就需要安装Charles的CA证书了首先在这里: 菜单栏 --> help --> SSL Proxying --> install charles root certificate 下载CA证书文件。如果没有弹出则在钥匙串里找到 双击crt文件,选择总是信任就可以了,下图4.6 是信任过的,没信任过的 是红色标记。

图4.4 4.4.png

图4.5 4.5.png

图4.6

4.6.png

5. 手机抓包

Charles 通常用来截取本地上的网络封包,但是当我们需要时,我们也可以用来截取其它设备上的网络请求。下面讲解手机抓包如何进行相应操作。

5.1 Charles 设置

要截取 手机 上的网络请求,我们首先需要将 Charles 的代理功能打开。在 Charles 的菜单栏上选择 “Proxy”->”Proxy Settings”,填入代理端口 8888,并且勾上 “Enable transparent HTTP proxying” 就完成了在 Charles 上的设置。如下图5.1 所示:

图5.1

5.1.png

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.21.png 图5.22

5.22.png

手机浏览器输入网址: chls.pro/ssl,即可下载完后自动安装证书到手机端。 在 设置 》通用 》 描述文件与设备管理》 里面是下载安装的证书 。 ios 安装成功后需要在 设置 》通用 》 关于本机 》 证书信任设置 》 选择信任 。 图5.23

5.23.png

    • 手机和电脑需要连接的是同一个WIFI
    • iOS手机代理设置 在 iPhone 的 设置 --> 无线局域网 中,可以看到当前连接的 wifi 名,通过点击右边的详情键,可以看到当前连接上的 wifi 的详细信息,包括 IP 地址,子网掩码等信息。在其最底部有「HTTP 代理」一项,我们将其切换成手动,然后填上 Charles 运行所在的电脑的 IP(可以在Charles的 工具栏 --> Help --> Local IP Address 查看),以及端口号 8888,如下图所示: 图5.24 5.24.png
  1. 当打开手机上的任意需要网络通讯的程序进行数据请求时,Charles 将弹出是否允许连接此代理(选择允许 allow (如下图5.25)),之后便可进行http抓包了。

图5.25 5.25.png

5.3 安卓手机 上的设置

    • 给安卓手机安装 Charles 证书 手机浏览器输入网址: chls.pro/ssl,下载完后自动安装证书到手机端。 小米8:自带的浏览器下载 无法安装,提示 没有安装的证书。所以 先在uc下载证书, 在WF 里的高级设置, 有个安装证书,点击进去,左上角三个点 选择文件安装。
    • 备注:部分手机直接点击证书是不能自动安装的,(如:OPPO A5)安装证书需在“设置”——>“其他设置”——>“设备与隐私”——>“从存储设备安装证书”——>找到下载证书所在的文件夹,点击证书进行安装(注意:有些人到这步卡住了,发现页面提示:无任何文件,亲,请点击左上角的三条横杆进行查找证书,整个抓包过程细节非常多,一不小心就掉到坑里了抓包失败)
    • 安卓手机机型这么多,具体机型遇到问题了在查吧~
    • 手机和电脑需要连接的是同一个WIFI 同iphone
  1. 安卓手机代理设置

    • 不同安卓手机弹出设置代理入口不同,如果进入网络详情页无代理项,可在WLAN列表长按wifi名称弹出代理设置如下图5.31:
    • 图5.31

5.31.png

4.当打开手机上的任意需要网络通讯的程序进行数据请求时,Charles 将弹出是否允许连接此代理(选择允许 allow (如图5.25)),之后便可进行http抓包了。

6. windows安装cherles, 下载证书可参考

windows可参考

参考:

macOS Charles 4.x版本的安装及使用(含破解激活)

Charles学习(一)之macOS Charles 4.x版本的安装、激活、使用以及软件功能了解

最明白的charles教程

Charles4.6.2版本手机抓包设置,抓包失败的解决方法详解

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 3 天,点击查看活动详情