Android-7-及以上夜神模拟器,Fiddler-抓-https-包
Android 7 及以上夜神模拟器,Fiddler 抓 https 包
问题描述
Android 从 7.0 开始系统不在信任用户 CA 证书(应用 targetSdkVersion >= 24 是生效,若是 targetSdkVersion < 24 即使系统是7.0+ 依然会信任)也就是说即使安装了用户 CA 证书,在 Android 7.0+ 的机器上,targetSdkVersion >=24 的应用 HTTPS 包就抓不到了。
解决方案
亲测有效!!!!!!
使用 OpenSSL 对 FiddlerRoot.cer 证书进行转换,然后放入手机系统证书目录内(/system/etc/security/cacerts——系统证书具体目录),并对其附加读写权限,以下为详细步骤。
环境准备
1、 下载抓包工具 Fiddler 或 Fiddler everywhere 版
- 可直接从 下载
- Fiddler 免费版不能抓 HTTP/2 的包, Fiddler everywhere 版可以,绿色永久版可查看
2、 下载夜神模拟器
- 温馨提示:如果你用的是真机那么必须要过root
3、 OpenSSL 安装
- 参考文章:
4、 AndroidSDK 安装
- 下载完成后,环境配置和下面
操作步骤
中5.3 夜神模拟器 cmd 环境配置
一样
操作步骤
1、导出 Fiddler 证书并修改成 .pem 和 .0 文件
1.1 按下图步骤导出 Fiddler_Root_Certificate_Authority.crt 证书
1.2 cmd 命令切换到证书的导出路径(默认导出桌面)
例如:
cd C:\Users\17710\Desktop
,每个人桌面路径不一定相同,将证书文件拖拽到 cmd 窗口,即可找到文件夹路径1.3 使用 OpenSSL 将 FiddlerRoot 证书的 crt 格式转换成 pem 格式
openssl x509 -inform DER -in Fiddler_Root_Certificate_Authority.cer -out cacert.pem
1.4 计算 pem 证书 hash 值-截取下图中箭头指向的
0725b47c
即可openssl x509 -inform PEM -subject_hash_old -in cacert.pem
1.5 将桌面上的 cacaert.pem 证书 修改为
0725b47c.0
,名称为上一步操作的 hash 值,后缀为 0
2、修改夜神模拟器配置
2.1 启动一个Android 7 以上的模拟器,按照下图指示
点击右上角设置,开启网络连接和网络桥接模式
设置静态 IP,一般只需要修改
IP 地址
和网关
这两项即可,IP 地址可以自己设置,比如我的电脑 IP 是 192.168.1.3,可修改成下图的 IP
2.2 确保模拟器已开启 Root
2.3 修改完成后重启模拟器,以保证生效
2.4 修改模拟器 WiFi 代理为手动,这里和真机的操作一样
3、打开夜神模拟器设备的 USB 调试选项
3.1 连续点击下图所指的版本号五次,即可进入开发者模式
3.2 搜索
USB 调试
并打开3.3 开启
USB 调试选项
4、将 0725b47c.0
证书放入夜神模拟器系统证书目录
4.1 直接拖拽
0725b47c.0
文件到夜神模拟器
,会自动打开下图的文件夹,并复制成功4.2 复制上图中的
0725b47c.0
文件,然后打开下图指示的根目录文件夹,点击右上角的粘贴
按钮,即可将0725b47c.0
证书放入系统证书目录
5、夜神模拟器 cmd 环境配置
5.1 找到
夜神模拟器
快捷方式,右键点击打开文件所在位置
5.2 这个文件夹内可以看到有个
nox_adb
应用程序5.3 打开
查看高级系统设置
,进入下图页面,按照顺序进行配置环境变量地址即可
6、给 0725b47c.0 证书赋予权限
6.1 使用
nox_adb devices
命令查看设备连接状态若出现下面版本号不一致的错误,可参考
6.2 使用
nox_adb conncet 127.0.0.1:62025
命令建立adb
连接!
注:夜神模拟器的端口是规律的,第一个模拟器端口是62001,第二个模拟器端口是62025,第三个是62025+1,以此类推)6.3 使用
nox_adb -s 127.0.0.1:62025 shell
命令进入模拟器 shell 命令行6.4 使用
mount -o remount -rw /system
命令给外层根目录中的 system 赋予权限6.5 使用
cd system/etc/security/cacerts
命令到系统证书目录6.6 使用
chmod 644 0725b47c.0
命令给证书赋予权限6.6 修改完成后,使用
ls -l
命令查看权限是否启用,如下图所示:6.7 最后需要在把最外层system的权限改回去
cd ../../../..
mount -o remount -ro system
7、打开 fiddler everywhere 进行抓包
效果图如下:
参考文章: