昨天突然想着抓点东西,就麻溜下载了夜神模拟器,charles,准备开始抓包。
突然发现,模拟器装完了证书,也一直报证书有问题,根本没有办法抓包。
为什么呢?
即使按照其它教程的安装证书,也只是把证书安装到了用户下面,然而安卓高版本(7.0)之后呢,app可以只信任指定证书和系统内置的证书,后续用户安装的证书是不生效的。
也就是后面怎么装都没用的,只能想办法装到系统内部。
第一步,准备pem证书。
1.需要用到 准备抓包软件保存的charles.cer
2.由于证书格式转换需要用到 openssl,去官网下载后,安装好openssl.
下面是证书格式转换 (windows里面的命令行操作)
pem证书转.cer证书
openssl x509 -outform der -in demo.pem -out demo.cer
cer证书转.pem证书
openssl x509 -inform der -in demo.cer -out demo.pem
3,打开夜神模拟器,他的根目录会有nox_adb.exe文件,用命令行去操控这个文件。(如果不是用夜神模拟器,也可以自己下载adb 工具,原理一样)
3.1.可以查看连接状态 nox_adb.exe devices
3.2.判断是否有root权限 nox_adb.exe root
没有root权限 给模拟器勾选上root,重启模拟器即可
3.3.将/system部分置于可写入模式 adb remount
4.再开一个cmd,查看证书信息,并复制证书
openssl x509 -subject_hash_old -in charles.pem
拷贝该文件,重命名为 hash结果里面的名称.0 (9a5ba575.0) 的证书
同理fiddler的证书也如此
5中的cmd中执行 adb push 9a5ba575.0 /system/etc/security/cacerts/ 就是把证书文件复制到证书
到这一步,就大功告成了。