使用Fiddler对Android 手机App进行抓包
1. Fiddler工作原理
Fiddler工作于OSI七层模型的应用层,Fiddler在浏览器和服务器之间建立了一个代理服务器,它可以捕获通过的http(s)请求。Fiddler启动后,会自动将代理服务器设置成本机,默认端口为8888。
Fiddler不仅能记录PC上浏览器的网络请求数据,还可以记录同一局域网中其他设备的http(s)请求数据。数据传递流程大致如下:
2. Fiddler下载地址:https://www.telerik.com/download/fiddler
安装后打开Fiddler,界面是这样的:
3.Fiddler默认配置是抓取不了https的报文,会提示“您的连接不是私密连接”。如果抓取的是https报文,需要修改一下Fiddler的配置,并重启保证设置生效。
(1)抓取主机的https报文
(2)抓取手机App的https报文
1)下载Fiddler证书到电脑桌面
- 步骤:Fiddler 主菜单 Tools --> Options-->HTTPS-->Actions-->Export Root Certificate to Desktop,结果如下。
- 可以看到桌面上有一个证书文件:
2)安装Fiddler证书到手机上
- 使用微信或者其他方式发送Fiddler证书到手机上,并安装
- 查看证书是否已安装
步骤:设置-->安全-->更多安全设置-->加密与凭据-->受信任的凭据-->用户
结果:可以看到已安装的Fiddler证书
4.开启Fiddler的远程连接,Fiddler 主菜单 Tools --> Options--> Connections页签,选中Allow remote computers to connect,并记住端口号为8888,等会设置手机代理时需要。
设置好后重启fiddler保证设置生效。设置如下:
5. 查看电脑IP,在cmd中输入ipconfig
6. 在Android 手机上设置代理
(1)长按连接的Wifi,点击修改网络(Modify network)
(2)Android手机设置代理并保存
1)Proxy选择手动(Manual)
2)输入主机名(Hostname),即上面电脑的IP
3)输入端口号(Port),即Fiddler默认的端口号8888
7. 设置完毕,在手机端对App进行操作,可以看到Fiddler上抓取了对应的网络请求和响应。
- 启动京东App,可以看到Fiddler上已经抓取到相应的https包了。