Charles
Charles Settings
- 2025 年 04 月 03 日 Charles_Settings_v4.6.7-2025-04-03.xml
Charles http 基本配置
- 使手机和电脑在一个局域网内 ,不一定非要是一个 ip 段,只要是同一个路由器下就可以了,比如电脑连接的有线网 ip 为 192.168.16.12,然后手机链接的 wifi ip 192.168.1.103,但是这个有线网和无线网的最终都是来自于一个外部 ip,这样的话也是可以的。
- 下面说说具体配置,这里电脑端是不用做任何配置的,但是需要把防火墙关掉(这点很重要)!然后 charles 设置 需要设置下允许接收的 ip 地址的范围 。 设置首先要进入这个位置
Proxy - Access Control Settings
然后如果接收的 ip 范围是 192.168.1.xxx 的话,那么就添加并设置成 192.168.1.0/24 如果全部范围都接收的话,那么就直接设置成 0.0.0.0/0。
- 只抓取手机,不抓取电脑
然后如果勾选了Proxy - Windows Proxy
的话,那么就会将电脑上的抓包请求也抓取到,如果只抓手机的话,可以将这个设置为不勾选。
Charles 进阶用法
配置 focus
View→Focused Hosts
过滤 Record include/exclude(Recording Settings)
在 Charles 的菜单栏选择 Proxy->Recording Settings
,然后选择 Include
栏,选择 Add
,然后填入需要监控的协议,主机地址,端口号,这样就达到了过滤的目的。
应用场景:某些服务挂了代理访问不了,比如 Google 登录,Google Cubes SDK 发布
focus 某个 host
右键选中某个 host:focus
然后 focus 的 Host 就单独一条,其他的在 Other Hosts
:
使用 Charles 模拟弱网环境(Throttle Settings)
菜单栏:Proxy→Throttle Settings
进入 Throttle 设置,可以配置指定 Hosts 弱网环境
工具栏,小乌龟绿色表示开启
使用 Charles 设置断点(Breakpoint Settings)
在 Charles 发起一个请求的时候,我们是可以给某个请求打一个断点的,然后来观察或者修改请求或者返回的内容,但是在这过程中药注意请求的超时时间问题。要针对某一个请求设置断点,只需要在这个请求网址右击选择 Breakpoints 就可以断点某一个请求了。断点设置:proxy→Breakpoint Settings
断点开启:proxy→Enable Breakpoints
使用 repeat 测试
重复请求:右键选中host,repeat
Repeat Advanced 可以重复定期发送多个请求
请求重定向(Map Remote/Local)
请求重定向的作用是什么呢?开发中一般都是测试环境,如果我们想对比一下和线上版本的区别的话,可以讲测试的请求重定向到正式环境下。在选择 Tools
->Map Remote
下:
Map Remote
注意上面
map From
中的Path
配置项使用了*
通配符,表示匹配 127.0.0.1:8080/api/下的所有文件及子路径,将其重定向到 cmstest.intra.xiaojukeji.com 下的/api/路径下
如果某个不写,保持不变,完整的 map to 过来。
可以在正常的某个请求,右键选择 Map,会自动帮我们把 Map From 的信息填好
MapLocal
mapLocal 类似,只是数据在本地
其他功能
- map 隐射可以使用的模式匹配符有三种:
*****
: 可以匹配 0 个或者多个字符**?**
: 可以匹配一个字符**[…]**
: 范围选择符,可以匹配范围中的任意一个字符
- 假设 Map From 配置中的各个项为空,表示匹配所有请求,然后 Map To 项的配置不同,代表不同含义
内容替换(Rewrite)
有时候我们会测一下请求的参数不同会带来不同的返回结果以测试是否达到业务需求,或者需要不同的返回结果来验证我们对数据的处理是否正确,这时候需要后台的同事配合,但是有了 Charles,我们可以自己把控接口返回来的内容,比如数据的空与否,数据的长短等等。在 Tools
->Rewrite Settings
下:
替换 Body
替换 Query Param
- 先 Remove Query Param
- 再 Add Query Param
添加 Query Param
添加请求参数,如忽略接口加密的参数
添加 Header
- 击菜单栏 Tools,选择 Rewrite;勾选 Enable Rewrite,点击 Add 按钮
- 添加请求:将请求粘贴到 Host 字段后,自动区分协议、域名、路径
- 添加规则
- 再次请求
Charles 破解
Charles4.2
破解步骤
将下载的文件重命名为 charles.jar 并覆盖到安装目录下的 lib 文件夹下即可完成破解 (Windows)
将下载的文件重命名为 charles.jar 并覆盖到 Content->Java 下即可完成破解 (MAC)
charles4.2 包破解包(见 charles.jar)
http://download.csdn.net/download/charmer21/10016501
Charles 4.2 目前是最新版,可用。
Registered Name: https://zhile.io
License Key: 48891cf209c6d32bf4
4.6.3
// Charles Proxy License
// 适用于 Charles 任意版本的注册码,谁还会想要使用破解版呢。
// Charles 4.2 目前是最新版,可用。
1
2
Registered Name: https://zhile.io
License Key: 48891cf209c6d32bf4
抓包工具 Charles v4.6.3 Win/Mac 破解版 - 附中文补丁
抓包工具Charles v4.6.3 Win/Mac破解版-附中文补丁
抓包不了问题排查
手机和电脑端是否能 ping 通
遇到过手机和电脑是在同一个网段,但是 ping 不通,也就抓不了包了
证书问题:红色的叉 unknown
- Mac 上是否安装并信任证书;
- 手机是否设置代理、是否已安装描述文件;
- 手机证书是否已信任。
- iOS 10.3 以后需要额外在
通用>关于本机>证书信任
设置里对 Charles Proxy CA 启用完全信任
- iOS 10.3 以后需要额外在
Android7.0 无法抓包的问题
Android 7.0 之后默认不信任用户添加到系统的 CA 证书:也就是说对基于 SDK24 及以上的 APP 来说,即使你在手机上安装了抓包工具的证书也无法抓取 HTTPS 请求。
需要配置:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<!--release只依赖system证书-->
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system"/>
</trust-anchors>
</base-config>
<!--指定域名-->
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">d1.music.126.net</domain>
<domain includeSubdomains="true">dldir1.qq.com</domain>
<domain includeSubdomains="true">imgsrc.baidu.com</domain>
</domain-config>
<!--debug依赖system和user证书-->
<debug-overrides>
<trust-anchors>
<certificates src="system"/>
<certificates src="user"/>
</trust-anchors>
</debug-overrides>
</network-security-config>
Manifest
文件的 appliccation
节点配置:android:networkSecurityConfig="@xml/network_security_config"
include 和 exclude 规则
上面还不生效,检查 Proxy→Recording Settings,去除 exclude 的配置
Map Local 数据量过大报错
如果文件极大(如超过 500MB),需调整 Charles 的 JVM 内存上限:
- 增加 Charles 的 JVM 内存 右键 Charles 应用图标 > 显示包内容 > 编辑
Contents/Info.plist
,修改VMOptions
:
1
2
<key>VMOptions</key>
<string>-Xmx10240m</string> <!-- 分配 10GB 内存 -->
Ref
- Android 常用抓包工具介绍之 Charles
http://blog.tingyun.com/web/article/detail/516 - 抓包工具 Charles 的使用心得
http://www.jianshu.com/p/fdd7c681929c