c4x64/droid-re-chain

GitHub: c4x64/droid-re-chain

面向 Android arm64 Unity/il2cpp 应用的无头 AI 驱动逆向工程 MCP 服务器,提供 150 余个覆盖完整逆向分析链路的自动化工具。

Stars: 5 | Forks: 1

# droid-re-chain 无头 AI 驱动的 Android 逆向工程自动化流水线。 这是一个 MCP 服务器,为 Android arm64 Unity/il2cpp 应用程序的自动化静态/动态分析提供了跨越 **8 个类别** 的 **122 个工具**。可与任何兼容 MCP 的 agent 一起运行:**Cursor**、**Claude Code**、**opencode**、**VS Code** (Continue/Roo Cline),或任何自定义 MCP host。 ## 一行安装 ``` # macOS / Linux curl -fsSL https://raw.githubusercontent.com/c4x64/droid-re-chain/main/install.sh | bash # 使用自定义 NDK 路径 curl -fsSL https://raw.githubusercontent.com/c4x64/droid-re-chain/main/install.sh | bash -s -- --ndk /opt/ndk # Windows (PowerShell) powershell -Command "iwr -Uri https://raw.githubusercontent.com/c4x64/droid-re-chain/main/install.bat -OutFile install.bat; .\install.bat" # 从任意位置运行 droidre # stdio mode (for MCP hosts) droidre --sse # SSE mode # 或者从项目目录 cd ~/droid-re-chain && python3 -m src.server ``` ## 快速开始 ``` git clone https://github.com/c4x64/droid-re-chain.git cd droid-re-chain pip install -r requirements.txt droidre # stdio mode (for MCP hosts) droidre --sse # SSE mode (for browser/dev tools) ``` 对于 NDK 构建,请将 `ANDROID_NDK_HOME` 设置为您的 NDK r25+ 路径。 ## 架构 ``` src/server.py — MCP entrypoint (--sse/--stdio flags) src/shared.py — CrashTrapDaemon, _adb_run, NDK paths, cross-platform OS detection src/tools_adb.py — 16 ADB/emulator management tools src/tools_ndk.py — 16 NDK/compilation/CMake/ELF verification tools src/tools_il2cpp.py — 15 symbol/metadata/Unity runtime tools src/tools_hook.py — 15 memory patching/trampoline generation tools src/tools_trap.py — 15 logcat crash trap/tombstone analysis tools src/tools_mem.py — 15 process/memory/maps/pattern scan tools src/tools_frida.py — 15 Frida attach/spawn/stalker/hook tools src/tools_apk.py — 15 APK decompile/recompile/sign/patch tools include/il2cpp.h — il2cpp API wrapper (READ ONLY) include/logging.h — Thread-safe logging, BUILD_HASH, null guards src/main.cpp — NDK hook module (constructor guard, install_hook) scripts/build_ndk.py — ccache/LTO/sanitizer/ELF verify builder ``` ## 工具类别 | 类别 | 工具 | 核心功能 | |----------|-------|-----------------| | **ADB** (`adb_*`) | 16 | 连接、安装、截屏、输入、重启、包生命周期 | | **NDK** (`ndk_*`, `verify_*`, 等) | 17 | clang/LTO/ccache 构建、CMake、ELF 验证、符号审计、strip | | **il2cpp** (`il2cpp_*`) | 15 | assembly dump、类/方法搜索、调用、字段读/写、profiler | | **Hook** (`hook_*`) | 15 | inline/PLT/GOT 模板、dlopen 拦截、trampoline 生成、il2cpp 方法 hook | | **Trap** (`trap_*`) | 15 | CrashTrapDaemon、logcat 流、信号过滤、tombstone 导出、seccomp 审计 | | **Memory** (`mem_*`) | 15 | maps dump、pattern 扫描、RWX 检查、区域比较、哈希、分配/释放 | | **Frida** (`frida_*`) | 15 | attach/spawn/detach、stalker trace、内存读/写、Java hook、module 查找 | | **APK** (`apk_*`) | 15 | 拉取、解压、apktool 反编译/重编译、签名、SSL pinning 扫描、保护检测 | | **Static** (`static_*`) | 7 | capstone 反汇编、字符串 xrefs、代码混淆启发式分析、checksec、加密常量、URL 提取、call graph | | **Database** (`db_*`) | 6 | 按二进制哈希持久化/加载/重映射 offset、导入/导出 JSON、版本 diff | | **Session** (`session_*`) | 4 | 快照/恢复/重放 session 状态、导出可共享的归档 | | **Bypass** (`bypass_*`, `spoof_*`) | 5 | root/模拟器/调试器/完整性校验绕过、设备指纹伪装 | | **IDA** (`ida_*`) | 3 | 导入 IDA 符号、将 offset 同步回 IDA、无头执行 IDAPython | | **Network** (`net_*`) | 4 | mitmproxy 设置、流量 dump、endpoint 发现、protobuf 解码 | | **Server** (`health_*`) | 1 | health_check — 所有子系统状态报告 | **总计:151 个工具** ## 多客户端设置 droid-re-chain 适用于 **20+ 兼容 MCP 的客户端**。运行自动安装程序: ``` bash scripts/setup_mcp.sh ``` 它会检测已安装的客户端并为所有客户端写入配置: | # | 客户端 | 作用域 | 配置路径 | |---|--------|-------|-------------| | 1 | **Cursor** | Project | `.cursor/mcp.json` | | 2 | **Windsurf** | Global | `~/.codeium/windsurf/mcp_config.json` | | 3 | **Antigravity** | Project | `mcp_config.json` | | 4 | **PearAI** | Project | `.pearai/mcp.json` | | 5 | **Claude Desktop** | Global | `~/Library/Application Support/Claude/claude_desktop_config.json` | | 6 | **ChatGPT Desktop** | Global | 设置 → MCP 服务器 | | 7 | **LibreChat** | Project | `librechat.yaml` | | 8 | **Jan** | Global | `~/jan/plugins/droid-re-chain.json` | | 9 | **Goose CLI** | Global | `~/.goose/config.yaml` | | 10 | **Claude Code** | Project | `.claude/settings.json` | | 11 | **Aider** | Project | `.aider.conf.yml` | | 12 | **AutoGen Studio** | Project | `autogenstudio/workspace.json` | | 13 | **CrewAI** | Project | `crew.yaml` | | 14 | **LangGraph** | Project | `langgraph.json` | | 15 | **Roo Code** | Project | `.roo/mcp.json` | | 16 | **Continue** | Project | `.continue/mcpServers/droid-re-chain.json` | | 17 | **VS Code (1.102+)** | Workspace | `.vscode/mcp.json` | | 18 | **Composio** | Cloud | 仪表盘 → 添加自定义 MCP | | 19 | **LlamaIndex** | Runtime | Python `McpToolSpec` | | 20 | **Harvey AI** | Enterprise | 管理仪表盘 | 有关各客户端的详细信息,请参阅 [`MCP_CLIENTS.md`](MCP_CLIENTS.md)。 ### opencode 已在 `config/opencode.json` 中配置。软链接: ``` ln -sf $PWD/config/opencode.json $PWD/opencode.json ``` ### CLI / 任何 MCP Host ``` droidre # stdio (default, from anywhere) droidre --sse --port 8080 # SSE mode bash mcp-entrypoint.sh # portable launcher ``` ## 前置条件 - **Python 3.10+** - **Android NDK r25+** — 为编译工具设置 `ANDROID_NDK_HOME` - **ADB** (platform-tools) — `brew install android-platform-tools` / `apt install adb` - **已启用 ADB 调试的 Android 模拟器或设备**(root 可选;某些工具需要 su) ### 可选项 - **Frida** — `pip install frida-tools`(用于 `frida_*` 工具) - **apktool** — 用于 `apk_decompile_smali` / `apk_recompile` - **apksigner** — 用于 `apk_sign`(随 Android SDK build-tools 一起提供) - **ccache** — `brew install ccache` / `apt install ccache`(加速 NDK 重新构建) ## 典型工作流 ``` 1. Pull APK from device (apk_pull_from_device) 2. Decompile to smali (apk_decompile_smali) 3. Find il2cpp offsets (il2cpp_find_class → il2cpp_find_method → il2cpp_get_method_pointer) 4. Generate hook (hook_il2cpp_method / hook_arm64_inline) 5. Compile libmod.so (ndk_build_module) 6. Verify ELF (verify_elf_header → verify_elf_symbols) 7. Push to device (adb push via adb_file_*) 8. Frida attach (frida_attach → frida_eval_script) 9. Monitor crashes (trap_start_daemon → trap_get_crashes → trap_analyze_crash) 10. Patch & repeat (trap_suggest_patch → hook_arm64_inline → rebuild) ``` ## 跨平台 自动检测 macOS/Linux/Windows 以适配: - ADB 二进制文件名(`adb` / `adb.exe`) - NDK host tag(`darwin-x86_64`、`darwin-aarch64`、`linux-x86_64`、`windows-x86_64`) - NDK 回退路径(Homebrew、`~/Android/Sdk`、`~/android-ndk`) ## 开发 ``` make install # pip install everything make build-release # NDK compile via scripts/build_ndk.py make test # 36 tests, all pass make lint # ruff check src/ make docs # regenerate docs/api.md ``` ## 测试 ``` python3 -m pytest tests/ -v ``` 包含 36 个测试,覆盖 OS 检测、NDK 路径解析、崩溃解析器(空/信号/完整 backtrace)、ADB 错误处理、错误限制截断、daemon 生命周期。 ## 文件 | 文件 | 用途 | |------|---------| | `src/server.py` | 带有 `--sse`/`--port` 标志的 MCP entrypoint | | `src/shared.py` | CrashTrapDaemon、ADB/NDK 封装、跨平台检测 | | `src/tools_*.py` | 8 个模块文件,共 122 个工具 | | `include/logging.h` | 线程安全的日志宏、BUILD_HASH、空指针保护 | | `include/il2cpp.h` | il2cpp runtime API 封装(**只读**) | | `src/main.cpp` | 带有 constructor 保护 + `install_hook()` 的 NDK hook 模块 | | `scripts/build_ndk.py` | 高级 NDK 构建器(ccache、LTO、sanitizers、ELF 验证) | | `scripts/generate_docs.py` | 从已注册的工具自动生成 `docs/api.md` | | `scripts/setup_mcp.sh` | 用于 Cursor/Claude Code 的一键 MCP 配置安装程序 | | `mcp-entrypoint.sh` | 适用于任何 MCP host 的便携式启动器 | | `config/opencode.json` | opencode MCP 服务器注册 | | `.cursor/mcp.json` | Cursor 项目级 MCP 配置 | | `.claude/settings.json` | Claude Code 项目级 MCP 配置 | ## 许可证 MIT
标签:Android逆向, Bash脚本, Frida动态调试, MCP服务, 云安全监控, 移动端安全, 自动化分析, 跨站脚本, 逆向工具, 静态分析