部分安卓,ios系统不支持fiddler,在我使用fiddler抓包安卓、IOS应用接口失败怎么办?有什么好的解决方案呢?
最好的方式就是换一个抓包工具,这里推荐工具:whistle
说一下whistle的优点:
跨平台,它是基于浏览器的,可以在mac或者windows上使用,而且配置简单。
集成了host管理功能,我们不需要在像fiddler那样,需要绑host的时候,专门找个工具去做这件事。
可以基于域名的代理,我们可以像绑host的ip那样,绑定访问的域名。
当然它也是有缺点的就是要配置运行依赖环境,whistle需要依赖于node。
下面开始介绍如何安装使用(我这里为 win10 x64 系统)
1、安装node
可以去官网(http://nodejs.cn/download/)下载,这里我选择“Windows 安装包 (.msi) 64位”下载安装(大家根据自己的系统选择合适的版本安装即可),安装后在命令窗口cmd使用:node -v 检查下是否显示版本信息确认安装成功。(我这里node版本为 v16.15.1)
2、安装whistle
进入cmd窗口执行命令:
npm install -g whistle
安装后使用命令:
w2 help
检查是否安装成功。
3、启动whistle
使用命令:
w2 start
其他常用命令:重启:w2 restart 关闭:w2 stop
4、chrome浏览器代理设置
whistle 是通过代理服务来进行工作的,因此需要给请求客户端配置 whistle 的代理,代理地址即 whistle 的监听地址(默认为 http://127.0.0.1:8899/ )
推荐使用SwitchyOmega浏览(适用chrome、firefox)器插件。
Chrome 应用商店:https://chrome.google.com/webstore/detail/padekgcemlokbadohgkifijomclgjgif
Mozilla Add-Ons(firefox):https://addons.mozilla.org/en-US/firefox/addon/switchyomega/
对此,Firefox安装相对简单,而chrome因为网络原因(都懂),所以可能大家不能直接输入上面链接安装上。
这里使用“SwitchyOmega_Chromium.zip”包安装chrome插件:
① 首先通过“菜单 > 更多更具 > 扩展程序”进入扩展程序页面(也可以在浏览器中键入 chrome://extensions/ 进入页面),在页面右上角打开“开发者模式”(默认是关闭状态)。
②在扩展程序页面点击“加载已解压的扩展程序”按钮,找到 SwitchyOmega_Chromium.zip 的解压路径,然后选择该文件夹后插件安装成功。(SwitchyOmega.zip 压缩包可在公众号后台输入“SwitchyOmega”获取)
注意:如果大家在官网(https://github.com/FelisCatus/SwitchyOmega/releases)下载的为“SwitchyOmega_Chromium.crx”文件,需要把后缀名改为 .zip / .rar 等压缩包格式,然后解压即可。
在chrome浏览器中键入 chrome-extension://padekgcemlokbadohgkifijomclgjgif/options.html#!/profile/proxy 即可访问SwitchyOmega设置页面。
安装成功后,访问 http://127.0.0.1:8899/ 即可进入以下页面。
5、手机代理
在 http://127.0.0.1:8899/ 页面,点击Online,可以看到IP和端口等信息,其中Port和IPv4的值对我们接下来的操作有用。
手机代理绑定这个ip及端口
6、访问及使用
当手机设置好代理后,在 http://127.0.0.1:8899/ 页面切换到“Network”即可查看抓包详情。(使用Composer可以方便的对请求重放)
7、https证书安装
ios和部分安卓系统需要信任证书,安装好后需要开启https拦截
点击工具栏的HTTPS,会弹出如下窗口
此码为证书下载码,手机配好代理后,手机浏览器扫此码即可安装证书。
注意:安装过程中证书名称大家随意写,凭据用途怎么选呢?这个建议扫码安装两次,依次勾选凭据用途( XXX应用 / WLAN)。
最后勾选上配置项“Capture TUNNEL CONNECTs”即可抓取https请求。
8、使用rules
我们点击最左侧的rules选项
打开如图:
在这个里面就可以绑定host或者域名啥的,包括重定向文件等等,填好后使用万能键ctrl+s即可生效。
不同于Fiddler通过断点修改请求响应的方式,whistle采用的是类似配置系统hosts的方式(即Rules),一切操作都可以通过配置实现,支持域名、路径、正则表达式、通配符、通配路径等多种匹配方式。
以上就是whistle对安卓、ios进行抓包的使用操作说明,大家可以自己去安装试试。
具体参考官方说明:
https://www.npmjs.com/package/whistle
https://wproxy.org/whistle/quickstart.html (中文帮助手册)