夜神模拟器配合charles抓包

夜神模拟器建议使用7.0.3.5 不要使用最新版本的使用2022年版本的,下载地址:https://mydown.yesky.com/pcsoft/69936237/versions/

这里提供一个下载地址,以防失联。主要原理是在夜神模拟器上安装app,然后夜神模拟器wifi这只Charles所在电脑ip代理上网,代理端口为charles设置的8888

步骤为:

1,安装charles的root证书到电脑上,导入charles根证书到电脑受信任的根证书区域。

2,因为android 7以上使用了证书验证,不再信任用户证书,只有android系统证书才被信任,如果不能导入到系统证书下,默认是抓不到app数据包的,所以默认需要把charles的

证书想办法导入的夜神模拟器的系统证书下(夜神7.0.3.5 android版本是7以上,用户导入的证书默认会到用户证书菜单下,系统根证书下没有)想导入到系统根证书目录下,android需要root权限,所好夜神模拟器默认就是打开了root权限的。

3,想把charles证书导入到夜神模拟器,需要做如下步骤

一:使用

模拟器上设置wifi代理后,访问

http://chls.pro/ssl 下载证书 并通过模拟器文件传输功能把证书传到windows电脑上

openssl x509 -subject_hash_old -in c:\charles.crt    算出证书hash值,把charles.crt 改名为 ”算出的hash.0”  后面0 可以修改成其他数字,为了防止重复

二:定位到模拟器安装目录下的bin下执行

adb -s 127.0.0.1:62001 push c:\dc32344a.0  /system/etc/security/cacerts/   如果提示成功,说明成功把charles证书导入的模拟器android的系统根证书下

可以去模拟器 打开设置——安全——信任的凭据——系统      下查找 XK72 Ltd  如有说明安装成功了。


剩下的可以在夜神模拟器上安装app,登录,然后在charles抓包页面看到抓下的数据了。


如果执行 adb -s 127.0.0.1:62001 push c:\dc32344a.0  /system/etc/security/cacerts/  的时候报如下错误:


D:\tools\Nox\bin>adb.exe -s 127.0.0.1:62001 push d:\8325cc71.0 /system/etc/security/cacerts/

adb: error: failed to copy 'd:\8325cc71.0' to '/system/etc/security/cacerts/8325cc71.0': couldn't create file: Read-only file system      则需要重新加载挂在目录为可读写

使用: adb shell mount -o remount,rw /system


请先 登录 后评论

2 个回答

石天

雷电模拟器上证书安装如下:

1,为了能抓到https的请求,我们必须要使用charles给我们的证书,模拟器必须有root权限后将证书放入到/system/etc/security/cacerts文件夹下才可以。

help -> ssl proxying -> save charles root certificate 进行保存(charles保存的证书默认是.pem后缀)

2,然后我们需要将获取到的.pem后缀文件的hash值,作为名字openssl x509 -inform PEM -subject_hash_old-in C:\Users\Administrator\Desktop\cert.pem

attachments-2023-11-ouV5KMo86554ec25eb7c8,png

3,将获取到的名字拿到,将后缀改成.0,比如我现在获取到的hash值是26cab76e,那么文件就是26cab76e.0,然后把拿到的文件通过adb进行导入。

adb shell mount -o remount,rw /system

adb push C:\Users\Administrator\Desktop\26cab76e.0 /system/etc/security/cacerts/

adb shell chmod 777 /system/etc/security/cacerts/26cab76e.0

设置完成后我们可以查看是否存入成功

attachments-2023-11-aY0vxV4R6554ec7785fe7,png

请先 登录 后评论
shitian
擅长:linux服务器和mysql数据库

雷电9 我当前安装是 9.5.3.0 安装证书有变化,之前把system目录挂在成 adb.exe shell mount -o remount,rw /system 已经行不通了,会报错如下:attachments-2026-03-n5Fd4uOt69c3bfeb32b85,png

attachments-2026-03-bxS1CqAF69c3c1a4847fc,png

是一个典型的 Android 10+ 动态分区/只读根文件系统 问题。 /dev/root  是只读的,无法通过传统方式重新挂载。

根本原因

雷电模拟器 9 基于 Android 9 或更高版本,使用了以下技术:

system-as-root:根目录  /  直接挂载 system 分区

dm-verity:强制验证分区完整性,防止修改

只读根文件系统: /dev/root  以只读方式挂载

解决方法如下:

一:先打开root权限和磁盘文件system.vmdk可写如图:

attachments-2026-03-jziPtXl569c3c0d95c45c,png

attachments-2026-03-a0OT930F69c3c0e6ca344,png

attachments-2026-03-LbdpO3PB69c3c0f54e731,png


二:把证书文件先push到系统的一个临时文件夹(这个文件夹可写)

attachments-2026-03-skalpKt169c3c18c0c6b6,png

三,通过 adb.exe shell 进入系统,使用su 切换到root, 然后使用 mount -o remount,rw / ,可以执行成功


四,把/data/local/tmp/8325cc71.0 拷贝到 /system/etc/security/cacerts 

1,cp /data/local/tmp/8325cc71.0 /system/etc/security/cacerts

2,chmod 644 /system/etc/security/cacerts/8325cc71.0

五,可选(还原之前打开的root)为原来的值

备注: system.vmdk 不能还原为只读,否则copy的数据将被重置!

请先 登录 后评论
  • 2 关注
  • 0 收藏,626 浏览
  • 每天惠23 提出于 2023-08-09 02:06

相似问题