0 概述

文档内容:主要描述使用Charles工具抓取移动端APP与服务器传输数据的操作教程。文档用图:支持开发者学习Charles抓包,辅助SDK接入问题排查和反馈。

1 关键定义

Charles:PC端网络封包截取工具,可用于截取移动端应用程序与服务器端网络通讯协议内容。抓包:packet capture,将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作。

2 安装Charles

2.1 下载Charles安装包 下载地址:http://www.charlesproxy.com

2.2 使用与激活 试用规则:基本可满足常规问题抓包需求 30天内:免费使用,使用时长无限制; 30天后:限制使用,使用时长受限制,每30分钟提示并重启一次。 激活方式: 操作入口:Charles菜单栏-》“Help"->“Resgistered Charles…” 配置内容:输入Registered name和License key。

3 配置Charles

3.1 配置代理

操作入口:Charles菜单栏->“Proxy”->“Proxy Setting”->“Proxies”

配置内容:

Port:代理端口值,默认填写8888,或者自定义,前提是不能和系统已占端口冲突。

Enable transparent HTTP proxyig:勾上。

Charles抓包微信聊天 charles抓包websocket_Charles抓包微信聊天

3.2 安装证书

操作入口:点击Charles的菜单栏->“Help”->“SSL Proxying”->“Install Charles Root Certificate”, 并将Charles证书“添加”到登录钥匙串,再进入“钥匙串访问”页面。

Charles抓包微信聊天 charles抓包websocket_SSL_02

Charles抓包微信聊天 charles抓包websocket_unity_03

操作入口:登录钥匙串->Charles证书->信任->使用此证书

配置内容:选择“始终信任”,并关闭证书详情,需要输入电脑密码确认更新设置。

Charles抓包微信聊天 charles抓包websocket_游戏开发_04

Charles抓包微信聊天 charles抓包websocket_Charles抓包微信聊天_05

Windows电脑注意事项:

安装证书时,存储位置选择“本计算机”,证书存储选择”受信任的根证书颁发机构“。

Charles抓包微信聊天 charles抓包websocket_SSL_06

Charles抓包微信聊天 charles抓包websocket_SSL_07

Charles抓包微信聊天 charles抓包websocket_游戏开发_08

Charles抓包微信聊天 charles抓包websocket_Charles抓包微信聊天_09

3.3 设置SSL代理和抓取域名

操作入口:Charles的菜单栏->“Proxy”->“SSL Proxying Settings”->“SSL Proxying”

配置内容:

Enable SSL Proxying:勾上,即开启SSL代理。

添加Location:点击下方”Add",在Host输入“*”,即设定为抓取全量域名请求。

Charles抓包微信聊天 charles抓包websocket_https_10

Charles抓包微信聊天 charles抓包websocket_游戏开发_11

4.配置手机

4.1连接代理

注意事项:

确保手机连接的无线网络与电脑一致,并且手机没有连接VPN。

4.1.1获取代理服务器地址和端口

操作入口:Charles的菜单栏->“Help”->“SSL Proxying”->“Install Charles Root Certificate on a Mobile Device or Remote Browser”

获取内容:如下图示例,服务器地址为10.90.153.229,端口为8888。

Charles抓包微信聊天 charles抓包websocket_游戏开发_12

Charles抓包微信聊天 charles抓包websocket_SSL_13

4.1.2 手机连接WIFI代理

注意事项:

。确保手机连接的无线网络与电脑一致,并且手机没有连接VPN。

。下文以Apple iOS系统为例介绍配置,安卓手机修改方式大同小异,可自行探索,主要是开启手动代理,并设置代理服务器地址和端口。

·操作入口:设置->WiFi无线局域网->进入对应WiFi详情->配置代理配置内容:完成以下配置并“存储”。

。手动:勾选

。服务器:填写按照上文「4.1.1获取代理服务器地址和端口」获取的服务器地址。

。端口:填写按照上文「4.1.1获取代理服务器地址和端口」获取的端口。

。示例

Charles抓包微信聊天 charles抓包websocket_unity_14

4.2安装Charles证书。

方法—:

a.联网:手机已按照上文「4.1.2手机连接WiFi代理」连接网络。

b.下载:使用手机默认浏览器safari,访问地址chls.pro/ssl,并允许下载证书,安卓手机可尝试使

用chrome浏览器。

c.安装:在“设置->已下载描述文件-安装”,安装Charles证书。

d.信任:在“设置->通用->关于本机->证书信任设置(滑到最下面)”",开启对Charles证书信任。

e. iOS示例:

Charles抓包微信聊天 charles抓包websocket_Charles抓包微信聊天_15

。方法二:如果方法一不能成功安装,使用导入安装。

。获取证书:点击Charles菜单栏->Help->SSL Proxying -> Save Charles Root Certificate,选择pem格式,下载到电脑。

。安装证书:将证书导入到手机,点击安装即可。

。安卓手机安装证书常见问题:

。无法安装:证书下载下来是一个*.pem 的文件,可尝试重命名为*.crt文件;

。找不到证书:在网络中选择高级设置/安全选项中,点击安装证书,找到下载证书位置并安装。。无法安装:下载证书后直接点击会报错“无法安装”(如小米MIUI),可在系统设置里搜索"安装证书”,找到后选择刚下载的证书进行安装。

。手机无法访问chls.prolssl问题:

。确保手机未开启VPN,并与电脑使用同一个无线网络;。PC若为windows系统,需要关闭Windows防火墙。

5抓取数据

。前置条件:完成上文「2安装Charles」 「3配置Charles]「4配置手机J。

注意事项:按照上文「3.3设置SSL代理和抓取域名」设置全量域名抓取。

5.1操作Charles

·操作步骤:

a.进入会话界面:在PC端打开Charles,进入Session界面,如无可在“Charles菜单栏->File->New Session”新建。

b.手机端触发请求:在手机启动游戏并等待完成加载,完成你问题的复现步骤,同时观察Session界面是否已出现对应域名。

c.找到目标数据:

i.选择目标域名下的请求,可输入Filter过滤目标域名;

ii.查看请求信息、响应信息。

d.反馈问题:如需SDK技术协助排查,请在“Charles菜单栏->File->Save Session As"保存会话,并反馈给运营或技术支持。

Charles抓包微信聊天 charles抓包websocket_https_16

5.2学习更多

。进阶学习:Charles官网英文文档,Charles功能介绍和使用教程,或自行搜索更多教程。

。温馨提示:完成抓包后,关闭手机WiFi代理,以免在Charles停止工作时影响手机网络的正常使用。