日常记录> 正文

安卓7.0以上添加Fiddler/Charles证书到系统根证书,实现抓包

2024-01-08T16:21:33+08:00

  将证书文件在android系统里直接安装会被分类为用户证书。

  应用在android 7.0+系统的设备中之所以没法被抓包,是因为android 7.0之后的应用是默认只信任系统证书,不信任用户证书,那么我们可以想办法将Fiddler证书装到系统证书目录下,伪装成系统证书,那么就不存在因为fiddler证书不被信任而无法抓包的问题了。 为什么不直接使用手机抓包,因为现在的手机不方便root,而模拟器一般都提供root权限,所以选择在模拟器上抓包。 所以整个过程分为一下步骤:

1、重新导出Fiddler证书

  因为新版本的Android拒绝超过两年有效期的证书,双击下载好的fiddlercertmaker.exe(确保已关闭Fiddler),会弹出提示导入证书成功这个对话框。(如果你的新版本可以安装,这一步可以省略)将Fiddler的证书导出到电脑,点击Tools -> Options -> HTTPS -> Actions -> Export Root Certificate to Desktop。fiddler_certificates

2、 下载和安装openssl,转化cer格式变成PEM

这一步是因为android系统安装证书需要pem格式的证书,需要将cer证书转成pem证书

windowns下安装openssl: Win32OpenSSL

将Fiddler cer证书转pem证书,在cmd输入如下命令进行转换:

openssl x509 -inform DER -in C:\Users\DELL\Desktop\FiddlerRoot.cer -out C:\Users\DELL\Desktop\FiddlerRoot.pem

用md5方式显示pem证书的hash值, 在cmd输入如下命令:

openssl x509 -inform PEM -subject_hash_old -in C:\Users\DELL\Desktop\FiddlerRoot.pem

然后重命名pem证书:

格式为md5值.0,例如我的为 e5c3944b.0

3、 将证书安装到模拟器

实际上是将md5命名的pem证书保存到模拟器/system/etc/security/cacerts目录就OK

了。

首先要确保模拟器是可root的,不然不能修改/system/etc/security/cacerts目录。

雷电模拟器如何root:

直接在设置打开磁盘写入功能

雷电模拟器如何root

其他的夜神模拟器可以,不过夜神模拟器安装小翼管家会卡死。

用到的命令为:

adb push C:\e5c3944b.0 /system/etc/security/cacerts

实际上可能遇到adb连接问题、/system/etc/security/cacerts目录写权限问题。

a、adb连接:

adb connect 127.0.0.1:62001

adb device

b、adb shell,进入到模拟器的终端shell中更改 /system/etc/security/cacerts目录写权限

输入:chmod 777 /system/etc/security/cacerts

一般会提示:Read-only file system,尝试mount -o remount,rw /system重新挂载一下系统,

然后再输入chmod 777 /system/etc/security/cacerts,你会发现可以成功设置了。

如果还不行,退出adb shell 执行:

先root:adb root、重新挂载:adb remount,接着重新在adb shell里输入chmod 777 /system/etc/security/cacerts

  参考链接:

《吐血整理》高级系列教程-吃透Fiddler抓包教程(27)-Fiddler如何抓取Android7.0以上的Https包-中篇 - 北京-宏哥 - 博客园

关于fiddler抓包的问题(证书问题)_fiddlercertmaker.exe-CSDN博客

【Fiddler】安卓7.0以上添加Fiddler/Charles证书到系统根证书(模拟器-雷电)_雷电模拟器安装证书-CSDN博客

分享到:

Ranvane的日常记录

关于我们 客服中心 广告服务 法律声明