解决安卓14的抓包证书模块

由于安卓14在证书的路径有变化,导致之前的证书移动到system下面不再生效,分析了下framework.jar,新的系统信任的CA证书放在了/apex/com.android.conscrypt/cacerts下面,并且/apex全部是不可变的。

private static File getDirectory() {
    if (System.getProperty("system.certs.enabled") != null && System.getProperty("system.certs.enabled").equals("true")) {
        return new File(System.getenv("ANDROID_ROOT") + "/etc/security/cacerts");
    }
    File updatable_dir = new File("/apex/com.android.conscrypt/cacerts");
    if (updatable_dir.exists() && updatable_dir.list().length != 0) {
        return updatable_dir;
    }
    return new File(System.getenv("ANDROID_ROOT") + "/etc/security/cacerts");
}

参考wuxianlin大佬之前发的微博:

Android 14将系统根CA证书,从系统目录/system/etc/security/cacerts迁移到com.android.conscrypt.apex(可通过Google Play动态更新)中,apex的挂载后的目录/apex/com.android.conscrypt/cacerts。
核心修改是这笔提交在原来基于magisk模块overlay /system/etc/security/cacerts方案的基础上,可以在magisk模块的post-fs-data.sh增加一句bind mount即可解决问题。亲测使用HttpCanary在Android 14可以抓仅信任系统根CA证书的应用的包。命令如下:
mount -o bind /system/etc/security/cacerts /apex/com.android.conscrypt/cacerts
当然也可以直接在模块中判断是否存在apex目录,如果存在则直接overlay apex目录,否则overlay system目录

把之前开源的证书移动模块稍微修改了下,增加了安卓14的支持。

一加12 使用APAtch刷入模块测试成功,Magisk和kernelSU自测。
APAtch或者kernelSU使用方法:修改被抓包应用的APP Profile,关闭卸载模块功能。或者直接在ksu设置中关闭默认卸载模块

模块下载地址:
https://wwfi.lanzouj.com/iF3FH1mama8j

github下载地址:

https://github.com/zhaoboy9692/movecert

参考:

1.https://weibo.com/3322982490/Ni21tFiR9

2.https://book.hacktricks.xyz/v/cn/mobile-pentesting/android-app-pentesting/install-burp-certificate#android-14-zhi-hou

3.https://github.com/NahidaBuer/HttpCanary-SSL-Magisk-A14

本文系作者 @ 原创发布在 我的编程学习之路。未经许可,禁止转载。

喜欢()
热门搜索
30 文章
0 评论
541 喜欢
Top