前言
Charles 是一个网络抓包工具,运行在 PC 端,我们可以用它来做 App 的抓包分析,得到 App 运行过程中发生的所有网络请求(requset) 和 响应内容(response),这就和 Web 端浏览器的开发者工具 Network 部分看到的结果一致,Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析,Charles 作为主要的移动端抓包工具,用于分析移动 App 的数据包,辅助完成 App 数据抓工作。
Charles 主要功能
- 支持SSL代理,可以截取分析SSL的请求
- 支持流量控制,可以模拟慢速网络以及等待时间(latency)较长的请求
- 支持AJAX调试,可以自动将 json 或 xml 数据格式化,方便查看
- 支持AMF调试,可以将 Flash Remoting 或 Flex Remoting 信息格式化,方便查看
- 支持重发网络请求,方便后端调试
- 支持修改网络请求参数
- 支持网络请求的截获并动态修改
- 检查HTML,CSS和RSS内容是否符合W3C标准
- 截取 HTTP 和 HTTPS 网络封包
Charles 安装配置
相关链接
官方网站:
https://www.charlesproxy.com/
下载链接:
https://www.charlesproxy.com/
下载 Charles
Charles 支持 Winddows、Linux 和 Mac 三大平台,可以根据需求直接点击对应的安装包下载即可,这里推荐使用迅雷下载,下载之后点击安装包,按步骤进行即可,操作简易。
Charles 是收费软件,不过有30天的免费试用期,试用期过后若没购买使用证书,每次使用不能超过30分钟,启动时有10s延迟。
证书配置
若想做 HTTPS 抓包的话,需要配置相关的 SSL 证书,Charles 是运行在 PC 端的,要想抓取 APP 端的数据,要在 手机端 和 PC 端都安装证书。
1. PC 端:Windows
- 步骤:Help → SSL Proxying → install Charles Root Certificate
2. 手机端:ios
- 查看电脑的 Charles 代理是否开启,步骤:Proxy → Proxy Settings
- 目前端口为 8888,可自行修改
- 在手机上配置相关代理信息,cmd 中用 ipconfig 查询出当前电脑的 IP 地址填于服务器处
配置完成存储后,过一会电脑会弹出以下窗口,询问是否信任此设备,点击 Allow 按钮即可,至此 手机端 和 PC 端就连接在同一个局域网内了,设置了 Charles 的代理,即 Charles 可以抓取到流经 App 的数据包了。
- 安装 Charles 的 HTTPS 证书
- 步骤:Help → SSL Proxying → Install Charles Root Certificate on a Mobile Device or Remote Browser
这提示在手机上设置好了 Charles 代理,然后需要在浏览器打开 chls.pro/ssl 网站下载证书,然后在 设置 > 描述文件 中安装证书,如果 ios 版本在 10 以下,信任 CA 证书的流程就已经完成,如果 ios 版本在 10 以上需要在 设置 > 通用 > 关于本机 > 证书信任设置中打开完全信任:
点击该描述文件,进入后安装
未安装
安装成功
打开完全信任
总结
以上为 App 抓包工具 Charles 的安装与配置流程,如有问题或建议,欢迎评论区指正交流~