Charles 使用笔记

一、介绍


Charles 属于抓包软件

Charles 多平台支持,mac、windows、linux。

Charles 是收费软件,可以免费试用 30 天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过 30 分钟,并且启动时将会有 10 秒种的延时。

二、原理


三、基础功能


1、主界面

层级关系:session -> request

request 分为两种展示方式:

  1. Structure 视图将网络请求按访问的域名分类。
  2. Sequence 视图将网络请求按访问的时间排序。

2、抓包电脑

记得把 proxy -> Recording 打开。

3、抓包手机

以我的 三星 s9 手机为例:

(1)SSL 代理设置

打开 Proxy -> Proxy Settings...,在弹出的窗口中选择SSL选项卡,勾选Enable SSL proxying,接着在下方点击Add,添加:

(2)手机 代理设置

Android 上,配好代理(如下图)。

坑:

三星手机不能在已经连好的网络上点高级然后添加代理,而是要忘记网络,然后在初始化连接的时候输入代理设置。

(3)安装 CA 证书

注意:v3.10 以前的 charles ,需要去官网直接下载电脑端和手机端 CA 证书:https://www.charlesproxy.com/documentation/additional/legacy-ssl-proxying/

1、针对电脑端的 CA 证书:

Mac 上,打开 Help -> Install Charles SSL Certificate...,会弹出 Keychain Access 程序,找到 Charles Proxy SSL Proxying 这个 CA 证书,然后双击打开详情窗口,确保都 trust 了:

2、针对手机端的 CA 证书:

然后,在手机浏览器上打开chls.pro/ssl,信任 Charles 的 CA 证书。

(4)上面的都弄好了,为什么爬取到的 https 内容会有乱码?

以爬取 安卓APP 为例,从 Android N 开始,您需要向您的应用添加配置,以使其信任Charles SSL Proxying生成的SSL证书。
具体参考:https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/

应用的配置可不容易添加,这是得上反向工程再重新编译吗?待解决。

四、高级功能


1、过滤请求

2、编辑请求 + 重发(支持高级重发:可做压力测试)

3、模拟慢速网络:Throttle 功能

4、修改服务器返回内容

  • Map 功能适合长期地将某一些请求重定向到另一个网络地址或本地文件。

  • Rewrite 功能适合对网络请求进行一些正则替换。

  • Breakpoints 功能适合做一些临时性的修改。

5、反向代理

五、坑


1、mac 上抓包时好时坏,不知道为什么

原因:是因为我 mac 上使用了 shadow socks 软件的问题。
解决方案:必须 退出 shadow socks (注意,仅关闭不退出是没用的)。如果没生效,重启下 Charles 即可。

2、监控手机时抓不到微信朋友圈的请求,不知道为什么

原因:待解决

参考文章


Charles 从入门到精通

原文地址:https://www.cnblogs.com/xjnotxj/p/11514626.html