hibalahrouf/Bypass-Root-Detection-sur-Android
GitHub: hibalahrouf/Bypass-Root-Detection-sur-Android
通过Frida动态插桩技术绕过Android RootBeer库的Root检测,系统对比了Medusa、Objection和纯Frida脚本三种方法的实战教程。
Stars: 0 | Forks: 0
# Root 检测绕过 — RootBeer 示例
通过动态插桩技术绕过 Android 上的 Root 检测。
探索了三种方法:**Medusa**、**Objection** 和 **Frida 纯脚本**。
## 环境
| 工具 | 版本 |
|-------|---------|
| Python | 3.14.3 |
| pip | 26.0.1 |
| ADB | 1.0.41 |
| Frida | 17.9.1 |
| Objection | 1.12.4 |
| Android Emulator | API 11 |

## — Medusa
Medusa 是一个基于 Frida 的模块化框架。它提供了开箱即用的“配方”,无需编写任何代码。
对于 RootBeer,我们从 Medusa 控制台加载 `rootbeer_detection_bypass` 模块。
**结果:** Java 层的绕过成功。SELinux 标志仍然为红色,需要通过 ADB 手动干预以强制其进入 Enforcing 状态。

## — Objection
Objection 将 Frida 转化为一个交互式 shell。我们可以实时探索内存,列出类/方法并随时设置 hook。
### 以 Spawn 模式启动
```
objection -g com.scottyab.rootbeer.sample explore \
--startup-command "android root disable" \
--startup-command "android sslpinning disable"
```
`android root disable` 命令只需一条指令即可自动设置数十个 hook。我们通过 **Spawn** 模式注入,以便在首次检查之前就介入。

**结果:** 所有 RootBeer 的检查项均显示为绿色,包括 SELinux。

### — 原生调用追踪
`frida-trace` 可用于隔离对 `fopen` 的调用,并确认该应用是否尝试打开系统文件(如 `/sbin/su`、`/system/bin/busybox`...)来检测 Root。
## 🔧— Frida 纯脚本
这是技术性最强的实验:我们将编写自己的 JS 脚本,以了解 Medusa 和 Objection 在底层的运行机制。
### `bypass_root_basic.js` — Java Hook
我们使用 `.overload()` 重写 RootBeer 库中的方法,以处理所有的方法签名。
```
Java.perform(function() {
var RootBeer = Java.use('com.scottyab.rootbeer.RootBeer');
var Build = Java.use('android.os.Build');
var Runtime = Java.use('java.lang.Runtime');
var SystemProperties = Java.use('android.os.SystemProperties');
var File = Java.use('java.io.File');
console.log('[*] MEGA-COMBINED BYPASS STARTING...');
// Toutes les méthodes de détection forcées à false
var methods = [
'detectTestKeys', 'detectRootManagementApps', 'detectPotentiallyDangerousApps',
'detectRootCloakingApps', 'checkForBinary', 'checkForSuBinary',
'checkForDangerousProps', 'checkForRWPaths', 'checkSuExists', 'isRooted'
];
methods.forEach(function(m) {
try {
RootBeer[m].overload().implementation = function() { return false; };
RootBeer[m].overload('java.lang.String').implementation = function(s) { return false; };
} catch(e) {}
});
// Build.TAGS -> release-keys (pour TestKeys)
try { Build.TAGS.value = "release-keys"; } catch(e) {}
// SystemProperties -> neutralise debuggable/tags/secure
SystemProperties.get.overload('java.lang.String').implementation = function(name) {
if (name.includes("debuggable") || name.includes("tags")) return "0";
if (name.includes("secure")) return "1";
return this.get(name);
};
// Runtime.exec -> bloque les commandes su/busybox/getprop
Runtime.exec.overload('java.lang.String').implementation = function(cmd) {
if (cmd.includes("getprop") || cmd.includes("su") || cmd.includes("busybox")) {
console.log('[+] Blocked Runtime.exec: ' + cmd);
return this.exec("echo release-keys");
}
return this.exec(cmd);
};
// File.exists -> su et busybox retournent false
File.exists.implementation = function() {
var name = this.getName();
if (name === "su" || name === "busybox") return false;
return this.exists();
};
console.log('[+] ALL HOOKS INSTALLED - 100% GREEN TARGETED !');
});
```

```
frida -U -f com.scottyab.rootbeer.sample -l bypass_root_basic.js
```

### `bypass_native.js` — 绕过原生层检查
RootBeer 也使用了原生代码 (`RootBeerNative`)。我们在其执行前的 Java 层对其进行拦截。
```
Java.perform(function() {
console.log('[*] Tentative de bypass du code natif via Java...');
try {
var RootBeerNative = Java.use('com.scottyab.rootbeer.RootBeerNative');
RootBeerNative.checkForRoot.implementation = function() {
console.log('[+] Appel natif checkForRoot intercepté -> Retourne 0');
return 0;
};
console.log('[+] Bypass natif installé avec succès !');
} catch(e) {
console.log('[-] RootBeerNative introuvable : ' + e);
}
});
```
```
# 同时注入两个脚本
frida -U -f com.scottyab.rootbeer.sample -l bypass_root_basic.js -l bypass_native.js
```

**最终结果:所有检查均显示 NOT ROOTED ✅**

## 工具对比
| 工具 | 优点 | 缺点 | 适用场景 |
|-------|------|--------|-----------------|
| **Medusa** | 快速,零代码 | 控制力较弱 | 快速批量分析 |
| **Objection** | 实时探索,功能强大 | 预设脚本固定 | 应用程序渗透测试 |
| **Frida 纯脚本** | 完全控制,定制化绕过 | 学习曲线较陡 | 高级研究 / 逆向工程 |
标签:Android安全, Android逆向, APP安全, Docker支持, Frida, Hook技术, Java Hook, Medusa, Native Hook, Objection, Root检测绕过, SELinux, 云资产清单, 反取证, 安全评估, 应用防护, 数据可视化, 数据展示, 移动安全测试, 移动应用安全, 红队, 绕过安全机制, 越狱检测绕过, 逆向工具, 逆向工程