amine727/Bypass-Root-Detection-sur-Android

GitHub: amine727/Bypass-Root-Detection-sur-Android

一个教学实验项目,演示如何利用 Frida 动态插桩技术绕过 Android 应用的 Root 检测机制。

Stars: 0 | Forks: 0

# 🔐 LAB 14 — 在 Android 上使用 Frida 绕过 Root 检测 ## 🎯 目标 本实验旨在了解如何使用 **Frida** 绕过 Android 应用中的 Root 检测机制。 ## 🧰 前置条件 * 已安装 Python * 已安装 Frida 和 frida-tools * 已安装 ADB * Android 模拟器或已开启 USB Debug 的手机 * 目标应用(例如:DIVA) ## ⚙️ 步骤 1 — 检查环境 ``` frida --version adb devices ``` ## ⚙️ 步骤 2 — 启动 frida-server ``` adb -s emulator-5556 push frida-server /data/local/tmp/ adb -s emulator-5556 shell chmod 755 /data/local/tmp/frida-server adb -s emulator-5556 shell "/data/local/tmp/frida-server -l 0.0.0.0" ``` ## ⚙️ 步骤 3 — 验证连接 ``` frida-ps -Uai ``` ## ⚙️ 步骤 4 — Root 检测绕过脚本 创建文件 `bypass.js` : ``` Java.perform(function () { console.log("[+] Root Bypass Loaded"); // 1. Bypass Build.TAGS try { var Build = Java.use("android.os.Build"); Build.TAGS.value = "release-keys"; console.log("[+] Build.TAGS bypass"); } catch (e) {} // 2. Bypass File.exists try { var File = Java.use("java.io.File"); File.exists.implementation = function () { var path = this.getAbsolutePath(); if (path.includes("su") || path.includes("busybox")) { console.log("[+] Blocked file check: " + path); return false; } return this.exists(); }; } catch (e) {} // 3. Bypass Runtime.exec try { var Runtime = Java.use("java.lang.Runtime"); Runtime.exec.overload('java.lang.String').implementation = function(cmd) { if (cmd.includes("su") || cmd.includes("busybox")) { console.log("[+] Blocked command: " + cmd); return this.exec("echo"); } return this.exec(cmd); }; } catch (e) {} }); ``` ## ⚙️ 步骤 5 — 使用 Frida 注入 ``` frida -U -f jakhar.aseem.diva -l bypass.js ``` ## 🖼️ 注入结果 15 ## 🖼️ 使用的脚本 14 ## ✅ 预期结果 * 脚本注入成功 * 终端中可见日志输出 * 应用中的 Root 检测已被绕过 ## 🧠 总结 本实验展示了如何: * 使用 Frida 进行动态分析 * Hook 敏感的 Android 函数 * 绕过 Root 检测机制
标签:ADB, Android安全, DIVA, Docker支持, Frida, frida-server, Hook技术, Java层Hook, JS文件枚举, Python, Root检测绕过, Root隐藏, 云资产清单, 安全实验, 安全机制绕过, 安卓模拟器, 提权防御绕过, 数据可视化, 数据展示, 无后门, 目录枚举, 移动安全, 移动应用安全, 红队, 网络安全, 逆向工具, 逆向工程, 隐私保护