RootRoot 是一款开源的 Android 安全检测工具包,专为安全研究人员、渗透测试人员和 Android 爱好者打造。它演示了移动应用程序如何实时检测已 root 的设备、Magisk 安装以及 Frida 检测框架。
该应用采用 4 种不同的检测策略,执行 13 项安全检查,让您全面了解设备的安全状况。
▌ 检测方法
◆ Java 层检测
• 根包扫描 — 检查 PackageManager 是否与 48 种已知的根应用程序签名匹配,包括 Magisk、SuperSU、KingRoot 和 Xposed
• SU 二进制搜索 — 扫描 14 个目录,查找 su、busybox 和 magisk 的二进制文件
◆ 原生静态注册
使用 .so 符号表中可见的导出 JNI 符号:
• 通过原生文件访问检查 Su 二进制文件
• 通过 /proc/mounts 检测 Magisk 挂载点
• 通过 /proc/cmdline 扫描 Frida 进程
• 通过 /proc/self/maps 检测 Frida 库
◆ 原生动态注册
在运行时通过 JNI_OnLoad 中的 RegisterNatives() 注册的函数 — 符号表中不显示导出符号。检查方法相同,但更难逆向工程。
◆ 原生 Dlsym(隐藏注册)
通过 dlsym() 从单独的共享库加载的函数 — 最复杂的检测策略,模拟真实安全 SDK 的行为。
▌ 主要特性
✦ 涵盖 4 种 JNI 注册策略的 13 项检测
✦ 终端风格的深色 UI,带有可展开的结果卡片
✦ 实时扫描结果及执行时间
✦ 每种检测技术的详细描述
✦ 纯 C 原生代码 — 零 C++ STL 依赖
✦ 用于理解移动安全的教育工具
✦ 支持 armeabi-v7a、arm64-v8a、x86 和 x86_64 架构
▌ 适用人群
• 研究 Android root 检测技术的安全研究人员
• 评估设备安全态势的渗透测试人员
• 实施或审核防篡改措施的 Android 开发人员
• 学习 JNI、原生代码和移动安全的学生
• 测试绕过检测方法的 ROM/Magisk 爱好者
▌ 教育用途
RootRoot 是一款安全研究和教育工具。它演示了攻击性和防御性移动安全技术。所有检测方法均已完整记录,并在 GitHub 上开源。
了解根检测的工作原理有助于防御者构建更强大的保护机制,也有助于研究人员发现现有实现中的漏洞。
源代码:https://github.com/John-Jung/RootRoot