首页 > 技术文章 > Charles介绍与使用

shyzzx 2021-06-16 20:00 原文

  

Charles 简介


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

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

 

Charles 主要的功能包括:

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

 

Charles 主界面介绍

 

工具导航栏中提供了几种常用工具:

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

Charles 主要提供两种查看封包的视图,分别名为 Structure 和 Sequence。

  • Structure: 此视图将网络请求按访问的域名分类。
  • Sequence: 此视图将网络请求按访问的时间排序。

 

Charles 菜单介绍

Charles 的主菜单包括:File、Edit、View、Proxy、Tools、Window、Help。用的最多的主菜单分别是 Proxy 和 Tools。

 

Proxy 菜单
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 界面设置。
Recording Settings(记录会话设置)

Tools 菜单

Charles 是一个 HTTP 和 SOCKS 代理服务器,所有的请求都会经过 Charles。下面主要介绍 Charles 提供的一些实用工具。

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:发布要点设置。
No Caching Settings(禁用缓存)

 

Charles 使用教程

 

通过Charles 进行 PC 端抓包

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

确保 Charles 处于 Start Recording 状态。
勾选 Proxy | Windows Proxy 和 Proxy | Mozilla FireFox Proxy。

通过 Charles 进行 HTTPS 抓包

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

完成 HTTP 抓包配置。
电脑端安装 Charles 证书:通过 Charles 的主菜单 Help | SSL Proxying | Install Charles Root Certificate 安装证书。
设置 SSL 代理:通过主菜单打开 Proxy | SSL Proxy Settings 弹窗,勾选 Enable SSL proxying。
移动端安装 Charles 证书:通过 Charles 的主菜单 Help | SSL Proxying | Install Charles Root Certificate on a Mobile Device or Remote Browser 安装证书。
设置好之后,我们打开手机上的任意需要网络请求的程序,就可以看到 Charles 弹出手机请求连接的确认菜单(只有首次弹出),点击 Allow 即可完成设置。
完成以上步骤,就可以进行 HTTPS 抓包了。

Charles-APP抓包流程

 

1、电脑端配置端口:Proxy->Proxy settings->8888并勾选 Enable transparent HTTP proxying

 

 

 2、手机端配置:打开WiFi,无线网络和电脑端必须是同一个局域网内,设置代理:端口和ip地址(电脑端win+R=》cmd=》ipconfig查看IPv4地址)

(也可直接在Help->SSL Proxying->Install Charles Root Creatificate on a Mobile Device or Remote Browser查看ip地址和端口)

 

 

3、SSL证书配置

(1)先下载SSL手机端证书配置

Help->SSL Proxying->Install Charles Root Creatificate on a Mobile Device or Remote Browser 设备安装证书


 

 

(2)点击完成之后在手机端浏览器中输入网址下载证书http://chls.pro/ssl

(3)电脑端配置:

Help->SSL Proxying->Install Charles Root Creatificate->安装证书

 

 

 

 

4、抓取https接口配置:

Proxy->SSL Proxying Settings->Add (根据需求配置全局可抓包Host与Port均为*或者对应主机和端口)

 

 

 

 

5、弱网测试

设置弱网:Proxy-》Throttle Settings-》勾选Enable Throttling( 可勾选Only for selected hosts 添加指定地址)-》选择Throttle preset设置常见的网络情况(也可直接在Bandwidth 添加网络的上传和下载速率)

 

 

6、重复发送一次&多次请求

选择需要重新发送请求的会话上,

(1)直接点击工具栏Repeat-重新按钮,或者选中请求右键选择repeat按钮发送一请求(定位问题)

(2)右键选择Repeat Advanced按钮设置重复发送次数(可做压力测试:判断多次发送请求时服务器响应时间)


 

 7、右键Compose编辑接口

 

 




 

推荐阅读