使用fiddler和安卓模拟器抓取安卓客户端数据包
安卓模拟器要选可以桥接网络的,本文中用的是雷电模拟器。
软件的安装都很简单,在此不再赘述。
fiddler中的设置
首先,打开fiddler,点击Tools选项卡下的Options。
切换到https选项卡,打开捕获https连接和解密https流量,并将证书文件导出至桌面。
切换到connections选项卡,打开允许远程计算机连接,其它的开不开无所谓,端口号也可以自己改,这里就不改了。
点击ok,fiddler这边的设置就完成了。最后,将鼠标放在右上角的Online上记录下本机的ip地址(这里ip地址有点多,不一定有这么多的ip地址,每台电脑不一样,后面能找到要用的那个ip地址,另外,如果fiddler的窗口太小Online可能不显示)。
安卓模拟器中的设置
打开安卓模拟器,进入到模拟器设置界面(本文中使用的是雷电模拟器)。
切换到网络设置,打开桥接模式,根据个人喜好选择动态分配ip或者固定ip,安装驱动后确定,会提示重新启动模拟器。
待重新启动后,点击模拟器右侧更多-共享文件,选择打开电脑文件夹,将之前从fiddler导出的证书文件拖进来,关闭窗口。
进入wifi设置,点击右上角的三个点,再点击高级。
在下方可以看到模拟器的ip地址是192.168.1.129,在之前记录的ip地址中找到同网段的ip地址为192.168.1.11,记住这个ip地址。
点击上方的安装证书,找到刚才拖进来的证书文件(忘记路径可以点击右边更多-共享文件-打开安卓文件夹查看),点击证书文件,为证书命名后确认(如果模拟器没有设置密码,这一步会提示设置密码)。
回到wifi列表页,长按当前连接的wifi,点击修改网络。
选中高级选项,代理设为手动,填写之前找到的与模拟器在同一网段的电脑ip地址和在fiddler中设置的代理端口(在之前设置允许远程计算机连接那里),点击保存。
这样模拟器的设置也完成了,这时如果模拟器有http或https请求的话在fiddler中就应该已经可以看见了。
下图是抓取的模拟器上bilibili客户端的https包。
小技巧
如果希望fiddler只监听模拟器上的流量可以在之前设置打开监听https流量的选项卡中的下拉框里选择'from remote clients only',点击ok就只有模拟器上的流量会被监听了。