貌似常用的手机网络抓包软件有 Charles 和 Fiddler。除了界面差异外,
- Charles 理论上收费,Fiddler 免费;
- Charles 做网络数据替换比较好写(Map Remote/Local),而 Fiddler 的替换条件要用正则表达式去匹配;
- Charles 可以在网络请求头后面增加定制数据(Rewrite),Fiddler 不确定有没有。
Map Remote/Local 和 Rewrite 都在 Tools 菜单里面。
-
Map Remote/Local
Map Remote/Local 可以设定匹配条件,然后将匹配条件的网络请求的响应,用其他的网络数据代替(Remote),或者用本地文件代替(Local)。
支持用“*”做匹配符。
大致如下图:
local.png remote.png -
Rewrite
Rewrite 的作用,是在网络请求头后面追加一些数据。当然,除了 Add Header,还有更强大的功能。
设置和效果,如下图:
Rewrite 设置.png Rewrite 效果.png-
不要代理 PC 网络
打开 Charles 以后,默认也会代理 PC 的网络。调试手机的时候,挺烦人的。可以关掉。
不代理 PC 网络.png
-
还有一个网络相关的小工具,SwitchHosts!,可以方便的在 PC 上设置 host。工具截图如下,其中左边是替换为的 IP,右边是要被替换的服务器地址:
设置完后,可以通过 Charles 查看,目标服务器都会被设置的 hosts 代替。
Charles HTTPS 抓包的小坑
-
下载手机的SSL证书。这一步很关键,你需要点击help -》SSL Proxying-》Save Charles Root Certificate,然后选择目录,保存一个类似于这样的“charles-ssl-proxying-certificate.pem”文件。
-
给手机安装证书。将证书导入手机后,打开手机的文件管理器,找到charles.pem,点击安装。
也可以尝试通过连接 Charles 代理后,浏览器输入 chls.pro/ssl 下载。然后通过 设置 -> 安全隐私 之类的页面,安装证书 -
切记在 Charles 软件上打开 SSL Proxy setting
然后就可以用 Charles 抓 HTTPS 包了。
网友评论