之前安装了Fiddler 抓包雷电模拟器中的数据,很容易抓包到,最近测试抓包,但是一直抓包不到数据,网友反映是因为雷电升级了的原因,4.0以上都抓包不到了
今天安装了逍遥模拟器,设置好后,马上就抓包到了,但是SSL的https,抓包不到实质数据,全部提示:Tunnel to
网上搜索了一堆,找到了解决方案:
原因:之前在模拟器中安装证书的时候,是直接访问PC端的地址+端口,下载并安装证书的,这样证书安装后会在用户证书这里
但是现在的SSL,需要把证书推到系统证书里面才行
安卓上证书的目录是放在 /System/etc/security/cacerts 中,但是不能直接把证书从PC端复制到安卓中
所以需要做几件事情
1.从Fiddler中导出证书,导出来的证书一般是.cer 格式的,我们要把它转换成 .pem 格式。
转换格式的时候,需要用于命令:
使用openssl的时候,命令出错的话,需要先下载一个openssl 并安装
https://slproweb.com/products/Win32OpenSSL.html
#1. 证书转换,已经是pem格式的证书不需要执行这一步 openssl x509 -inform DER -in xxx.cer -out cacert.pem #2. 进行MD5的hash显示 #openssl版本在1.0以上的版本的执行这一句 openssl x509 -inform PEM -subject_hash_old -in cacert.pem #openssl版本在1.0以下的版本的执行这一句 openssl x509 -inform PEM -subject_hash -in cacert.pem 将第二条指令输出的类似347bacb5的值进行复制 tips: 查看openssl版本的指令openssl version
命令执行后生成 269953fb, 然后把这个pem文件手工修改成 269953fb.0
将pem证书重命名,使用上面复制的值(类似于269953fb)对pem证书进行重命名,
用 mv cacert.pem 269953fb.0 会出错,我就手工修改了。可能是mv这个命令我这边环境不对
2. 再用adb命令把这个改名后的证书文件推送到系统证书里面去。不能手工从PC复制进去,也找不到这个目录
adb root adb remount adb disable-verity adb push 269953fb.0 /system/etc/security/cacerts adb enable-verity adb reboot
执行到这里,重启一下模拟器,就可以抓到包了
参考:
https://blog.csdn.net/weixin_53485288/article/details/118786741
https://helloworddm.blog.csdn.net/article/details/98363056