免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。本次测试仅供学习使用,如若非法他用,与平台和本文作者无关,需自行负责。
|
大家可以把安全绘景设为星标,这样就可以及时看到我们最新发布内容啦!
前言
KernelSU在隐藏Root方面效果很好。在用户层的检查中目前没发现能直接检查KernelSU的,除了KernelSU管理器。管理器固定包名“me.weishu.kernelsu”。
目标
修改KernelSU管理器固定包名为自定义名称,规避包名检查。
分析
在Kernel代码部分apk_sign.c(https://github.com/tiann/KernelSU/blob/v0.9.4/kernel/apk_sign.c#L317)中对apk文件检查签名判断。
在Makefile(https://github.com/tiann/KernelSU/blob/v0.9.4/kernel/Makefile#L45)中定义了签名数据大小和SHA256值。KSU_MANAGER_PACKAGE参数强制指定管理器包名。当存在多个签名相同的应用时就需要强制指定管理器包名。
注意在代码(https://github.com/tiann/KernelSU/blob/v0.9.4/kernel/apk_sign.c#L95)中指定了签名证书缓存大小,当使用的签名证书大小超过该大小时需要手动修改。
修改
在KernelSU环境下使用以下命令获取签名证书大小和SHA256值。将值填入Makefile中,重编译Kernel。
ksud debug get-sign [apk文件路径]
Android Studio打开管理器源码修改build.gradle.kts(https://github.com/tiann/KernelSU/blob/v0.9.4/manager/app/build.gradle.kts#L22)修改当前包名。将AndroidManifest.xml中对应的Application类和Activity类名修改。完成后打包Apk使用指定的证书签名即可。
原文始发于微信公众号(安全绘景):KernelSU修改管理器包名
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论