一、Charles介绍
Charles 是在 PC 端常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。除了在做移动开发中调试端口外,Charles 也可以用于分析第三方应用的通讯协议。配合 Charles 的 SSL 功能,Charles 还可以分析 Https 协议。
Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。
Charles是收费软件,首次打开会提示你,可以免费试用30天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过30分钟,并且启动时将会有10秒种的延时。因此,该付费方案对广大用户还是相当友好的,即使你长期不付费,也能使用完整的软件功能。只是当你需要长时间进行封包调试时,会因为 Charles 强制关闭而遇到影响。
Charles 主要的功能包括:
- 截取 Http 和 Https 网络封包。
- 支持重发网络请求,方便后端调试。
- 支持修改网络请求参数。
- 支持网络请求的截获并动态修改。
- 支持模拟慢速网络。
二、Charles下载
地址:Download a Free Trial of Charles • Charles Web Debugging Proxy
三、破解方法
1、打开破解网址:Charles破解工具 输入版本号,点击生成,跳出弹框,复制License Key的值
2、打开Charles 工具后,点击 Help——Registered Name,跳出弹框输入版本号和 License Key 的值,点击Register
3、再次跳出弹框,提示注册成功,charles 需关闭后,再重启,即可生效 ;点击确定。charles 关闭
4、再次打开Charles 工具,已没有提示免费试用的信息,代表成功。
四、工具介绍
Charles 的主界面视图如下图所示:
工具导航栏
Charles 顶部为菜单导航栏,菜单导航栏下面为工具导航栏。视图如下图所示:
工具导航栏中提供了几种常用工具:
主界面视图
Charles 主要提供两种查看封包的视图,分别名为 Structure
和 Sequence
。
- Structure: 此视图将网络请求按访问的域名分类。
- Sequence: 此视图将网络请求按访问的时间排序。
使用时可以根据具体的需要在这两种视图之前来回切换。请求多了有些时候会看不过来,Charles 提供了一个简单的 Filter
功能,可以输入关键字来快速筛选出 URL 中带指定关键字的网络请求。
对于某一个具体的网络请求,你可以查看其详细的请求内容和响应内容。如果请求内容是 POST 的表单,Charles 会自动帮你将表单进行分项显示。如果响应内容是 JSON 格式的,那么 Charles 可以自动帮你将 JSON 内容格式化,方便你查看。如果响应内容是图片,那么 Charles 可以显示出图片的预览。
Charles 菜单介绍
Charles 的主菜单包括:File
、Edit
、View
、Proxy
、Tools
、Window
、Help
。用的最多的主菜单分别是 Proxy
和 Tools
。
Proxy 菜单
Charles 是一个 HTTP 和 SOCKS 代理服务器。代理请求和响应使 Charles 能够在请求从客户端传递到服务器时检查和更改请求,以及从服务器传递到客户端时的响应。下面主要介绍 Charles 提供的一些代理功能。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 界面设置
Tools 菜单
Charles 是一个 HTTP 和 SOCKS 代理服务器,所有的请求都会经过 Charles。下面主要介绍 Charles 提供的一些实用工具。Tools 菜单的视图如下图所示:
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:发布要点设置。
通过 Charles 进行 PC 端抓包
Charles 会自动配置浏览器和工具的代理设置,所以说打开工具直接就已经是抓包状态了。只需要保证一下几点即可:
- 确保 Charles 处于 Start Recording 状态。
- 勾选 Proxy | Windows Proxy 和 Proxy | Mozilla FireFox Proxy。
通过 Charles 进行移动端抓包
手机抓包的原理,和 PC 类似,手机通过把网络委托给 Charles 进行代理与服务端进行对话。具体步骤如下:Charles抓安卓7.0及以上的https(windows)_Instinctty的博客-CSDN博客
通过 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 抓包了。