指纹对抗
Apatch
为什么要进行内核root
1
2
3
4Magisk的修改集中在用户空间(boot.img里面加入magisk32/64、daemon、sepolicy补丁),/system/bin、/sbin、/proc/self/mounts会留下大量文件与挂载证据;App通过调用access()、stat()、fopen()等函数就可以检测到设备是否root。
KernelSU/APatch/AKP在内核层面给用户授予root权限,用户空间几乎无感:没有su文件、没有额外挂载、不需要改动sepolicy,默认采用“白名单”机制——未被授权的普通App连su都调不到,所以传统“文件+挂载”几乎检测不到。
常见的内核root工具有KernelSU、APatch、AKP等等,但是KSU适合GKI形式的安卓内核(内核>5.0),我这里测试机内核为4.4,所以采用APatch(APatch基于KSU魔改二开),https://apatch.dev/zh_CN/;
但是app仍然可以调用内核一些接口,检测相关特征;想再深一点隐藏,就得继续在内核层把/proc/kallsyms、模块列表、syscall表、符号CRC等也一起去特征,于是就有了susfs4ksu-module、ReKernel之类的“二次补丁”。它们把暴露给用户的节点动态过滤掉,实现免杀的效果。确保手机已经解开BL锁、电脑准备好adb和fastboot(fastboot devices检测不到设备是因为电脑没装驱动,最后面有WriteUp)
1
2
3
4
5确保内核配置如下
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
adb root
adb shell "zcat /proc/config.gz | grep CONFIG_KALLSYMS"
提取当前的boot.img文件到电脑中
1
21. 主要是为了后续操作不当,手机变砖时的急救措施。因为我无所谓,所以这里没有进行操作,工具自查
2. 已经root过的手机,boot.img是被修改过的(magisk也改了内核),会导致后续的兼容问题,比如apatch的系统模块会提示不兼容magisk,所以准备官方干净的boot.img从官网或者第三方刷机平台(如果我上传ROM包到第三方平台,我会在内核植入免杀马,所以谨慎下载!!!),下载当前系统的ROM包,建议手机型号和内核和原系统保持一致。Nexus和Pixel手机可参考:https://developers.google.cn/android/images?hl=zh-cn
得到的是一个压缩包,把它解开,里面还有一个image-xxxxx.zip的压缩包,继续解开,一会要对里面的boot.img进行魔改。通过adb将boot.img上传到手机(比如:adb push boot.img /sdcard/Download)

下载APatch.apk到手机:https://github.com/bmax121/APatch/releases
1
adb install APatch.apk
运行apatch,选择刚刚上传的boot.img,进行修改



将apatch打入内核,并设置密码

修改完成之后,屏幕中日志会告诉你修改之后的boot.img的位置,通过adb将它pull到电脑上
手机进fastboot模式(adb reboot bootloader),将修改之后的boot.img刷入boot分区

1
2fastboot flash boot boot.img
fastboot reboot重启之后,apatch正常运行,各个模块没有提示兼容性问题

fastboot找不到设备
电脑打开设备管理器,在其他设备或者便携设备中找到你的设备名称(如果没有,可以点击最右侧的“更多操作” ==> “查看” ==> “勾选显示隐藏的设备”)
双击你的手机,点击更新驱动程序




如果说fastboot仍然找不到设备,或者说根本没有Android Phone这个选项,手动下载驱动:https://gitcode.com/open-source-toolkit/1de04/blob/main/Fastboot%20%E9%A9%B1%E5%8A%A8.zip,然后解压
如果你的系统存在Android Phone这个选项(右键 → 更新驱动 → 浏览我的计算机 → 让我从计算机的设备驱动列表选择) ==> 仍然双击进来 ==> 点击“从磁盘安装” ==> 选择刚刚解压得到的驱动文件(android_winusb.inf) ==> 选中后确定 ==> 下一步 ==> 弹出警告选「始终安装」

如果系统中不存在Android Phone,那么选择移动设备(右键 → 更新驱动 → 浏览我的计算机 → 让我从计算机的设备驱动列表选择),然后重复上述步骤
提示「第三方驱动无签名」导致装不上,先临时关掉驱动签名校验:Win10 设置 → 更新和安全 → 恢复 → 高级启动 → 立即重启 → 疑难解答 → 启动设置 → 重启 → 按7选「禁用驱动程序强制签名」
安装痕迹隐藏模块
cherish_peekaboo.kpm
- 在APatch内核里直接hook掉kallsyms、show_module、seq_puts等函数,屏蔽掉 apatch、supercall、ksu等关键字
- 下载插件并上传到手机https://archive.org/download/cherish_peekaboo_kpm_apatch
- APatch主界面 → 内核模块 → 右下角“+” → 选cherish_peekaboo_1.5.kpm → 开始修补 → 成功后重启
ZygiskNext
- 给后面所有Zygisk模块提供注入环境,本身也带一点隐藏Zygote痕迹的功能
- 现在插件压缩包并上传到手机(不要解压)https://github.com/Dr-TSNG/ZygiskNext/releases
- 打开APatch Manager → 底部栏点 “系统模块” → 右下角 “+” → 文件管理器里选中刚才的ZygiskNext-xxx.zip
- 安装完成后界面会出现 “ZygiskNext” 卡片,右侧开关默认已打开 → 直接点右下角 “重启”。
- 重启回来再进 APatch → 系统模块,能看到 ZygiskNext 卡片里出现 “已启用” 字样即表示运行成功
TrickyStore
- 伪造keystore和verifiedBootState,安全措施比较严格的软件(比如金融类的、交易类的)会检测这一块
- 下载插件并上传到手机https://github.com/5ec1cff/TrickyStore/releases/,安装步骤同ZygiskNext
- 重启之后,检查是否存在
/data/adb/tricky_store/keybox.xml和/data/adb/tricky_store/target.txt - 如果没有,准备1份未吊销的keybox.xml(可选,但想拿STRONG完整性必须放,注意不可以自动生成)。可以从海鲜市场购买或者从其他手机
adb pull /data/misc/keystore,然后上传到手机 - 编辑targets.txt,把要生效的App包名逐行写进去,若手机TEE已损坏,在包名后加英文感叹号!强制走软证书模式
- 保存退出,TrickyStore 实时热加载,立刻生效,不需要重启
Zygisk-Assistant
删除su二进制残留、清空libcvm调用栈、隐藏Zygisk自身特征
在超级用户里面,点击某个app,然后打开排除修改,Zygisk-Assistant插件就能对该app进行特征隐藏

在apatch的设置里面,修改默认su提权指令,比如将
su改为fuck常见痕迹隐藏模块
Tool Address Shamiko https://github.com/LSPosed/LSPosed.github.io/releases PlayIntegrityFix https://github.com/KOWX712/PlayIntegrityFix/releases/tag/v4.4-inject-s cherish_peekaboo_kpm https://archive.org/download/cherish_peekaboo_kpm_apatch ZygiskNext https://github.com/Dr-TSNG/ZygiskNext/releases TrickyStore https://github.com/5ec1cff/TrickyStore/releases/ Zygisk-Assistant https://github.com/snake-4/Zygisk-Assistant/releases/ 常见环境检测工具
Tool Address Android-Native-Root-Detector https://github.com/reveny/Android-Native-Root-Detector/releases/ NativeDetector https://github.com/Dr-TSNG/NativeDetector/releases Hunter / Momo /
Delta Magisk
安装
其实,无论哪种root方式,指纹对抗/环境隐藏,主要看插件的强大,能够抹除多少指纹。Apatch的插件确实要比原始人magisk好一些(其实没啥用,检测软件同样能检测),但目前来说Delta自身提供的隐藏功能就比较强大,再配合少部分第三方插件几乎很难检测,可过金融APP。
安装DeltaMagisk(KitsuneMagisk):非官方下载
1
adb install -r KitsuneMagisk.apk
将原始的boot.img上传到手机
1
adb push boot.img /sdcard
将Magisk安装进内核

选择原始的boot.img




将修补后的boot.img拖到电脑上(/storage/emulated/0就是/sdcard),准备刷入boot分区
1
adb pull /sdcard/Download/magisk_patched-27002_yaaFB.img ./magisk.img
进fastboot,刷入magisk.img就好了

继续重启


隐藏环境
开启隐藏功能(不要点配置MagiskHide),重启

隐藏Magisk本身



常见环境隐藏模块
Name Purpose Address LSPosed 一个基于 Riru/Zygisk 的系统级框架,它本身不提供具体功能,而是作为一个“平台”,允许开发者创建各种“模块”来改变系统和应用的行为,从而实现高度定制化、增强功能或保护隐私(原版止步于Android14,社区大佬二开支持更高Android) Releases · JingMatrix/LSPosed Tricky Store 伪造设备的 Bootloader 状态和 Keybox 信息,让设备获得更高的完整性等级 https://github.com/5ec1cff/TrickyStore/releases/ Zygisk Assistant 隐藏 Root 痕迹,让应用“看不见” Magisk、KernelSU、APatch 及 Zygisk 模块的存在,从而绕过检测 https://github.com/snake-4/Zygisk-Assistant/releases/ Zygisk Next “增强版”的 Zygisk 加载器,主要解决两大问题:为 KernelSU 提供 Zygisk 支持,并增强 Root 隐藏能力 https://github.com/Dr-TSNG/ZygiskNext/releases 隐藏应用列表 阻止/允许应用程序读取系统中的应用程序列表,方式第三方工具被检测 https://github.com/Dr-TSNG/Hide-My-Applist/releases PlayIntegrityFix PIF 通过修改系统属性(props)和构建信息(如指纹、型号等),让 Google Play 服务(DroidGuard)在验证设备时,误认为设备是官方、未修改的状态,从而通过检测 https://github.com/KOWX712/PlayIntegrityFix/releases/tag/v4.4-inject-s