安装 charles
这里推荐直接去官网下载 https://www.charlesproxy.com/latest-release/download.do
根据自己的电脑选择合适的安装包,我这里选择 macOS dmg 格式安装包。安装好后直接运行,第一次是试用版
破解方法
考虑到自己经常使用这个抓包,就在网上搜了下破解方法
方法一:
Registered Name: https://zhile.io
License Key: 48891cf209c6d32bf4
直接用上面的注册码,点击 help->register Charles 输入上面提供的注册码,输完确定后重新启动 charles 即可
方法二:
访问https://www.zzzmode.com/mytools/charles/ 根据页面提示完成操作
抓取 http 报文
想要抓取手机上 H5 页面可按照一下步骤:
- 将手机和电脑连接在同一个网络上,电脑和手机连接同一 WIFI
- 在 Mac 上系统偏好设置->网络面板可查看到自己电脑的 ip
- 在手机连接上同一 WIFI 后,修改网络,设置代理,填写服务器主机名为第 2 步中查看到的自己电脑的 ip,服务器端口为 8888,点击保存
- 此时在手机上访问的 http 协议页面在 charles 上都能看到网络请求
抓取 https 报文
想要抓取 https 报文,必先安装证书,如果是想抓取 mac 浏览器访问的 https 页面,mac 得安装证书,同理如果是想抓取手机访问 https 页面,手机得安装证书
mac 上证书安装
- 点击 help -> SSL proxying -> install charles root certificate 密码授权
- 在弹出的添加证书窗口中,选择添加,可以看到在钥匙串访问窗口中,该证书已成功添加,但是此时该证书仍然不被信任
- 双击此证书,在弹出的 Charles Proxy CA 窗口中,点击信任按钮,使用此证书时,选择始终信任后关闭窗口,使用账号和密码授权后,即可看到此证书已经被信任了
此时 mac 上访问的 https 页面在 charles 上能看到网络请求了
手机上证书安装
- 手机和电脑连接同一网络后,用手机默认浏览器访问http://chls.pro/ssl 下载 pem 证书
- 安装证书,这里不同的手机安装证书方式不同,我这里已 huawei 手机为例 设置->安全和隐私 ->更多安全设置 -> 加密和凭据 -> 从存储设备安装 点击刚才下载的 pem 证书 即可安装完成。
此时手机上访问的 https 页面也可以在 charles 上看到网络请求了
如何用 charles 过滤请求
在用 charles 抓包请求时会看到有很多请求并不是自己想要的,这时候我们需要学会过滤出自己想要的请求。
过滤方法有三种
-
在主界面的中部的 Filter 栏中输入需要过滤出来的关键字
-
菜单栏选择 “Proxy”->”Recording Settings”,在弹出的窗口中选择 Include 栏,再点击“Add”,在弹出的窗口中输入需要监控的协议,主机地址,端口号等信息,来添加一个项目。如下图所示:
-
在想过滤的网络请求上右击,选择 “Focus”,之后在 Filter 一栏勾选上 Focussed 一项,如下图所示:
charles 如何限制网速,模拟弱网环境
选择 Proxy->Throtting Setting,打开后如下图设置
charles 如何修改请求的响应内容
选中要修改的请求,右击选择 Map Local 在 Edit Mapping 弹窗中选择一个本地文件(自己修改后的请求)作为请求的响应内容
charles 如何代理 localhost
因为某些系统硬编码使得 localhost 的流量不走系统代理,导致 charles 无法代理 localhost
解决方法
第一步: 修改 host 将 127.0.0.1 指向localhost.charlesproxy.com
第二步:在浏览器中请求 localhost.charlesproxy.com:8080
以上这三步就可以在 charles 中捕获到 localhost 中的请求了,方便后面修改请求的响应内容
这里使用 8080 端口是因为我本地开启的服务就是在 8080 端口上
参考文章:
原文链接: https://jesse121.github.io/blog/articles/2019/12/22.html
版权声明: 转载请注明出处.