之前使用的fiddler4和雷电模拟器3进行抓包,最近在使用模拟器访问app内嵌的网页(vue编写的)时发现雷电3无法访问加载vue编写出的网页。所以决定换到雷电4。当前下载的版本是雷电模拟器4.0.79。按照之前的配置雷电3的方式配置雷电4的代理后发现无法使用fiddler进行抓包,根据网上大佬们的指导,进行多次尝试,最后得以成功。将此次抓包配置步骤记录下来,以便后续查看。
原因分析:
雷电4使用的是安卓7,安卓7对用户自行安装的证书不再信任,所以造成无法抓包。因此解决方式就是将证书制作成为系统证书。通过git bash命令窗口进行操作:
1.将fiddler生成的证书,转换为.pem文件
openssl x509 -inform DER -in FiddlerRoot.cer -out fiddler.pem
2.解析出证书的hash值(因为安卓证书文件名是根据hash值存的)。
openssl x509 -inform PEM -subject_hash_old -in fiddler.pem | head -1
3.将该hash值作为新的文件名以".0"结尾。
cat fiddler.pem > 269953fb.0
将新命名好的.0文件,通过雷电模拟器4(需要开启ROOT权限)自带的文件管理器,将此文件放置到
/system/etc/security/cacerts
目录中。将此文件的权限修改为-rwr--r--。并重启雷电模拟器4。
重启雷电模拟器4后,在设置-安全-信任的凭据-系统中找到fiddler证书,则安装证书成功。
安装成功后,按照配置雷电模拟器3时的操作步骤应该是在wifi设置中设置fiddler代理。但是通过网上大佬们的分享以及自己实践发现,雷电模拟器4中wifi设置的代理配置是无效的。解决方式多样,目的就是真正成功的设置代理。这里使用的是adb方式设置雷电模拟器的代理。
在雷电模拟器的安装根目录下有adb.exe可执行文件,通过命令行进行操作,优先使用
adb.exe devices
命令检索当前的设备(如果未检索到,可以重启一次雷电模拟器4。即可搜索到)
能够检索到模拟器设备后,执行以下命令,给雷电模拟器4设置全局代理。
adb.exe shell settings put global http_proxy 本机ip:fiddler端口
设置后重启雷电模拟器4,即可发现能够使用fiddler进行抓包操作。