Charles 小白入门

934 阅读4分钟

对于Android开发来说,除了AS自带的Profiler外,Charles是比较适合我们的抓包工具了,它可以让我们清晰的查看客户端使用的http协议、TLS协议、请求头等信息,还能显示我们的设备型号,并修改入参进行调试、模拟慢速网络环境、断电调试以及通过安装CA证书调试Https等实用技能,下面我做了个简单介绍,方便自己记录,没用过的同学也可以看下快速入门。

 Charles 官网 

下载相应系统的 Charles 安装包,安装即可。


Charles的本质是一个HTTP和SOCKS的代理服务器。 代理请求和响应,使Charles能够在请求从客户端传递到服务器时检查更改,服务器传递到客户端的响应也是如此。

Charles菜单含义

image.png

顶部菜单

比较常用的菜单是Proxy和Tools。

Proxy菜单
  • Start/Stop Recording:开始/停止记录会话。

  • Start/Stop Throttling:开始/停止节流。

  • Enable/Disable Breakpoints:开启/关闭断点模式。

  • Recording Settings:记录会话设置。

  • Throttle Settings:节流设置。

  • Breakpoint Settings:断点设置。

  • Reverse Proxies Settings:反向代理设置。

  • Port Forwarding Settings:端口转发。

  • Windows Proxy:记录计算机上的所有请求。

  • Proxy Settings:代理设置。

  • SSL Proxying Settings:SSL 代理设置。

  • Access Control Settings:访问控制设置。

  • External Proxy Settings:外部代理设置。

  • Web Interface Settings:Web 界面设置。

我在使用中认为比较常用的是Throttle Settings(节流设置)

Throttle Settings 和 Start/Stop Throttling 配合使用,在 Start Throttling 的状态下,可以通过 Throttle Settings 配置 Charles 的网速模拟配置。Throttle Settings 的视图如下图所示:

勾选 Enable Throttling 启用网速模拟配置,在 Throttle Preset 下选择网络类型即可,具体设置可以根据实际情况自行设置。如果只想模拟指定网站的慢速网络,可以再勾选上图中的 Only for selected hosts 项,然后在对话框的下半部分设置中增加指定的 hosts 项即可。

Throttle Settings 视图中的选项含义如下:

  • Bandwidth:带宽
  • Utilistation:利用百分比
  • Round-trip:往返延迟
  • MTU:字节
Tools菜单
  • No Caching Settings:禁用缓存设置。

  • Block Cookies Settings:禁用 Cookie设置。

  • Map Remote Settings:远程映射设置。

  • Map Local Settings:本地映射设置。

  • 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:发布要点设置。

图标菜单

  • :清除捕获到的所有请求

  • image.png :启用SSL代理

  • :红点状态说明正在捕获请求,灰色状态说明目前没有捕获请求。

  • :灰色状态说明是没有开启网速节流,绿色状态说明开启了网速节流。

  • :灰色状态说明是没有开启断点,红色状态说明开启了断点。

  • :编辑修改请求,点击之后可以修改请求的内容。

  • :重复发送请求,点击之后选中的请求会被再次发送。

  • :验证选中的请求的响应。

  • :常用功能,包含了 Tools 菜单中的常用功能。

  • :常用设置,包含了 Proxy 菜单中的常用设置。

抓取 Https

在Android设备上抓取https的数据时, 首先需要确保电脑和手机要在同一个路由器网络下

PC端
  • 需要关掉防火墙,或者将Charls允许通过防火墙。

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

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

  • 安装 Charles 证书:通过 Charles 的主菜单 Help | SSL Proxying | Install Charles Root Certificate 安装证书。(需要将证书设置为信任可参考 Charles证书安装

  • 打开SSL代理 Proxy -> SSL Proxying Settings -> SSL Proxying -> Add image.png

Host: 为需要过滤的域名地址,*表示不过滤

Port: 固定为443,*表示任意端口

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

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

  • 确保手机通过Charles设置的代理连接成功后,使用手机上原生的浏览器访问chls.pro/ssl,安装证书。(如果手机无法完成安装,可通过电脑下载下来并修改后缀为.crt,复制到手机根目录进行安装)。

  • 现在就可以正常抓取Https包了

文章参考:

juejin.cn/post/684490… juejin.cn/post/684490…