Fiddler抓取雷电模拟器4.x

本文原由

之前使用Fiddler抓取雷电模拟器3.x版本,是可以按照常规做法,在无线网那里改为手动设置,填入本机ip和抓取端口(一般为8888)就能抓取到了,但是毕竟3.x的雷电安卓版本太低了,最近遇到些个别APP直接闪退,所以索性换成了4.x的雷电,但是官方好像并没有优化好,按照3.x的逻辑已经没有办法抓包了,查阅了很多帖子,进行过多次尝试后终于成功了,为了避免以后少走弯路,所以将抓包配置步骤记录如下

原因分析

雷电4.x使用的是安卓7,对用户自行安装的证书不再信任,所以造成无法抓包

因此解决方式就是将证书制作成为系统证书

解决办法

1、打开Fiddler,依次打开工具类中的工具,选择选项,然后找到https标签页,点击右侧的操作按钮,选择导出根证书到桌面

2、使用win+R打开运行窗口,输入cmd打开提示符窗口,输入如下命令进入桌面

1
cd Desktop

3、找到桌面导出的证书FiddlerRoot.cer,使用如下命令将证书转换为.pem文件

1
openssl x509 -inform DER -in FiddlerRoot.cer -out fiddler.pem

4、解析出证书的hash值(因为安卓证书文件名是根据hash值存的)

1
openssl x509 -inform PEM -subject_hash_old -in fiddler.pem | head -1

5、将该hash值作为新的文件名以.0结尾

1
cat fiddler.pem > 269953fb.0

6、经过操作,我们可以看到桌面生成了这么几个文件

7、打开雷电模拟器,依次点击右侧工具栏中更多-共享文件

8、我们首先选择左侧,打开电脑文件夹,将刚刚生成的.0结尾的文件复制到该目录

9、然后我们点击右侧打开安卓文件夹,勾选该文件,然后依次点击父目录,找到如下目录,将此文件移动到该目录中,这里需要ROOT权限操作,因为我使用的是精简去广告版,所以自带ROOT权限,百度搜索相关关键字即可找到资源,这里就不分享了

1
/system/etc/security/cacerts

10、移动成功后,我们在当前目录选中刚刚的文件,点击右上角,对属性进行修改如下,然后点击雷电模拟器右上角X,选择重新启动

11、重启成功后,依次点击设置-安全-信任的凭据中,找到如下凭据,即安装证书成功

12、此时我们点击桌面生成的雷电模拟器图标右键,选择打开文件所在的位置,此时在该目录中我们在地址栏输入cmd,按回车进入当前目录的命令提示符界面

13、先使用如下命令,看能否检测到雷电模拟器设备,如果无法检测到,则重启雷电模拟器在尝试此命令,搜索到如下图

1
adb devices

14、搜索到设备后,执行如下命令,给雷电模拟器设置全局代理,端口可在Fiddler设置界面中找到,修改后需要重启Fiddler才会生效,默认端口为8888;本机ip可是在命令提示符中输入ipconfig找到

1
adb.exe shell settings put global http_proxy 本机ip:fiddler端口

我本地ip为172.18.0.188,端口为8888,所以我执行的命令如下

1
adb.exe shell settings put global http_proxy 172.18.0.188:8888

15、配置完成后,重启雷电模拟器后,即可正常进行抓包了