TheQmaks/areclaw

GitHub: TheQmaks/areclaw

一款集成多种逆向工具和 AI 能力的 Android 应用安全分析命令行工作空间,支持从静态反编译到动态插桩的全流程自动化。

Stars: 23 | Forks: 2

# areclaw Android 逆向工程命令行自动化工作空间。 用于 Android 应用程序安全分析的独立环境:反编译、流量拦截、动态插桩、密钥扫描和 API 发现。由 [Claude Code](https://claude.ai/claude-code) 驱动,作为 AI 编排器。 ## 快速开始 ``` # 1. 安装所有工具(约 1.5 GB,需要 Java 17+、Python 3.10+) python scripts/install.py # 2. 设置环境(每个 shell 会话) source scripts/setup-env.sh # 3. 分析应用 # 通过 Claude Code agent: claude /analyze-apk com.example.app # 或手动: jadx -d workspace/output/com.example.app --deobf workspace/samples/app.apk ``` ## 平台 在带有 Git Bash 的 **Windows 10/11** 上开发和测试。支持 Linux 和 WSL,但测试较少。自动安装程序 (`install.py`) 下载 Windows 二进制文件 —— Linux 用户需要手动调整工具下载。 ## 系统要求 - **OS**: Windows 10/11 和 [Git Bash](https://git-scm.com/downloads) (随 Git for Windows 附带) - **Java**: 17+ (用于 jadx, apktool, Ghidra, 反混淆器) - **Python**: 3.10+ 带 pip - **Android SDK**: adb, aapt2 (见下方设置) - **设备或模拟器**: 已 root,用于 Frida、流量拦截、运行时分析 - **Git**: 用于从源码构建 narumii-deobfuscator - **硬盘**: ~2 GB 用于工具 + 工作空间 ### Android SDK 设置 安装 [Android Studio](https://developer.android.com/studio) 并使用 SDK Manager 安装: - **SDK Platform-Tools** (提供 `adb`) - **SDK Build-Tools** (提供 `aapt2`) 设置环境变量以便工具能找到 SDK: ``` # Windows (Git Bash) — 通常: export ANDROID_HOME="$HOME/AppData/Local/Android/Sdk" # Linux: export ANDROID_HOME="$HOME/Android/Sdk" ``` `setup-env.sh` 会从 `ANDROID_HOME` 或标准路径自动检测 SDK 位置。 ### 使用模拟器 Android Studio 包含一个模拟器 (AVD Manager)。出于安全研究目的,请使用 **Google APIs** 系统镜像(而不是 Google Play —— 那些是被锁定的): ``` # 通过 Android Studio 创建 AVD:Tools → Device Manager → Create Device # 选择一个设备,选择 "Google APIs" 系统镜像(API 34+) # 或通过命令行: sdkmanager "system-images;android-34;google_apis;x86_64" avdmanager create avd -n test_device -k "system-images;android-34;google_apis;x86_64" emulator -avd test_device -writable-system ``` 要在模拟器上使用 Frida —— Google APIs 镜像默认提供 root 访问权限: ``` adb root adb push frida-server /data/local/tmp/ adb shell chmod 755 /data/local/tmp/frida-server adb shell /data/local/tmp/frida-server -D & ``` ## 架构 ``` areclaw/ ├── scripts/ │ ├── install.py # Automated installer & updater (14 tools + 21 pip packages) │ └── setup-env.sh # PATH configuration (auto-detects Git Bash / WSL / Linux) ├── pytools/ │ ├── ui_explorer.py # UIAutomator-based device interaction │ ├── traffic_to_collection.py # Frida logs / HAR -> Postman collection │ └── check_updates.py # Version checker for all tools ├── workspace/ │ ├── frida-scripts/ # 15 Frida instrumentation scripts │ ├── samples/ # APK files │ ├── output/ # Decompiled source (per-package) │ ├── reports/ # Analysis reports (markdown) │ ├── traffic/ # Intercepted HTTP traffic │ ├── collections/ # Postman / OpenAPI collections │ ├── credentials/ # Test account data │ └── patches/ # Modified / repackaged APKs ├── tools/ # Binaries (downloaded by install.py) ├── .claude/ │ ├── agents/android-reverser.md # AI agent prompt (1000+ lines) │ └── skills/ # 5 automation skills ├── CLAUDE.md # Project instructions for Claude Code └── .tool_versions.json # Installed version tracking ``` ## 工具 ### 独立工具(由 `install.py` 下载) | 工具 | 用途 | |------|---------| | [jadx](https://github.com/skylot/jadx) | DEX/APK -> Java 反编译器 | | [apktool](https://github.com/iBotPeaches/Apktool) | APK 反汇编 / 重建 (smali, resources, manifest) | | [dex2jar](https://github.com/pxb1988/dex2jar) | DEX -> JAR 转换器 | | [Ghidra](https://github.com/NationalSecurityAgency/ghidra) | 原生二进制 (ARM/ARM64 .so) 逆向工程 | | [radare2](https://github.com/radareorg/radare2) | 二进制分析、反汇编、脚本编写 | | [uber-apk-signer](https://github.com/patrickfav/uber-apk-signer) | APK 签名 (debug & release) | | [apk.sh](https://github.com/ax/apk.sh) | 拉取 APK、注入 Frida gadget、补丁 | | [Il2CppDumper](https://github.com/Perfare/Il2CppDumper) | Unity IL2CPP 元数据提取 | | [trufflehog](https://github.com/trufflesecurity/trufflehog) | 密钥扫描器 (800+ 检测器, 实时验证) | | [java-deobfuscator](https://github.com/java-deobfuscator/deobfuscator) | Java 字节码反混淆 | | [threadtear](https://github.com/GraxCode/threadtear) | Java 反混淆 (ZKM, Stringer, Allatori 等) | | [simplify](https://github.com/CalebFenton/simplify) | 通过虚拟执行进行 Android 反混淆 | | [narumii](https://github.com/narumii/Deobfuscator) | 现代 Java 反混淆器 (从源码构建) | | [phantom-frida](https://github.com/TheQmaks/phantom-frida) | 隐身 Frida 服务端 (反检测绕过) | ### Pip 包 (21) frida-tools, objection, mitmproxy, androguard, apkid, lxml, requests, sosaver, clsdumper, jnitrace, fridump3, r2pipe, capstone, unicorn, mitmproxy2swagger, apkleaks, lief, triton-library, androidemu, justapk, [tema](https://github.com/TheQmaks/tema) ### Python 库 ``` import lief # Parse/modify ELF, DEX, OAT, VDEX import capstone # ARM/AArch64 disassembly import unicorn # CPU emulation (ARM64) import r2pipe # radare2 scripting from triton import * # Symbolic execution (ARM deobfuscation) from androidemu.emulator import Emulator # Android .so emulation (ARM32 JNI) ``` ## Frida 脚本 15 个用于 rooted 设备上动态插桩的即用型脚本: | 脚本 | 用途 | |--------|---------| | `ssl-bypass.js` | 通用 SSL pinning 绕过 (OkHttp, Conscrypt, TrustManager, network_security_config) | | `root-bypass.js` | Root 检测绕过 (RootBeer, 文件检查, shell, props, native) | | `anti-frida-bypass.js` | 多层反 Frida 规避 (maps, ports, strings, threads, ptrace) | | `http-logger.js` | HTTP 请求/响应日志记录 | | `api-tracer.js` | Retrofit 接口发现 (endpoints, methods, annotations) | | `crypto-tracer.js` | Cipher, MessageDigest, Mac, SecretKey 操作追踪 | | `enum-classes.js` | 列出所有已加载的类(含框架过滤) | | `shared-prefs-monitor.js` | SharedPreferences 读/写监控 | | `intent-monitor.js` | Activity, Broadcast, Service intent 监控 | | `dex-loader-monitor.js` | 运行时 DEX/SO 加载检测 + 自动转储 | | `reflection-tracer.js` | 反射调用追踪 | | `webview-interceptor.js` | JS bridge 监控, URL 拦截, 安全审计 | | `stalker-tracer.js` | 通过 Frida Stalker 进行原生指令追踪 (ARM64) | | `stacktrace-helper.js` | 跨线程堆栈跟踪链接 | | `hook-template.js` | 可自定义的方法 hook 模板 | 用法: ``` frida -U -f com.example.app -l workspace/frida-scripts/ssl-bypass.js # 组合多个脚本: frida -U -f com.example.app \ -l workspace/frida-scripts/ssl-bypass.js \ -l workspace/frida-scripts/http-logger.js ``` ## Claude Code 集成 ### Agent `android-reverser` agent 提供了一个智能分析会话,包含决策框架、搜索模式和 OWASP 指导: ``` claude /agent android-reverser ``` ### 技能 | 命令 | 描述 | |---------|-------------| | `/analyze-apk ` | 完整的 5 阶段安全分析(静态 + 动态) -> markdown 报告 | | `/find-api ` | API endpoint 发现 -> 文档 + Postman collection | | `/intercept ` | 智能流量拦截(自动适应 pinning 类型) | | `/register ` | 使用临时邮箱自动注册账号 | | `/compare-versions ` | 对比 APK 版本间的权限、API、安全性和代码变更 | ## 常用工作流 ### 下载与反编译 ``` justapk download com.example.app -o workspace/samples/ jadx -d workspace/output/com.example.app --deobf workspace/samples/com.example.app.apk ``` ### 密钥扫描 ``` # Static(反编译源码) trufflehog filesystem workspace/output/com.example.app/ --json apkleaks -f workspace/samples/app.apk --json -o workspace/reports/secrets.json # Dynamic(运行时 crypto) frida -U -f com.example.app -l workspace/frida-scripts/crypto-tracer.js ``` ### 流量拦截 ``` frida -U -f com.example.app \ -l workspace/frida-scripts/ssl-bypass.js \ -l workspace/frida-scripts/http-logger.js # 将日志转换为 Postman 集合 python pytools/traffic_to_collection.py frida workspace/traffic/app-traffic.json ``` ### 隐身 Frida(反检测应用) ``` # 从 build-info.json 读取服务器名称和端口 cat tools/phantom-frida/build-info.json # 部署并连接 adb push tools/phantom-frida/-server /data/local/tmp/-server adb shell chmod 755 /data/local/tmp/-server adb shell /data/local/tmp/-server -D & adb forward tcp: tcp: frida -H 127.0.0.1: -f com.example.app -l workspace/frida-scripts/ssl-bypass.js ``` ### 修改并重签名 APK ``` java -jar tools/apktool/apktool.jar d app.apk -o workspace/patches/app-smali # ... 编辑 smali/resources ... java -jar tools/apktool/apktool.jar b workspace/patches/app-smali -o workspace/patches/modified.apk java -jar tools/uber-apk-signer/uber-apk-signer.jar -a workspace/patches/modified.apk ``` ### Unity IL2CPP 游戏分析 ``` unzip game.apk lib/arm64-v8a/libil2cpp.so assets/bin/Data/Managed/Metadata/global-metadata.dat -d workspace/output/ tools/il2cppdumper/Il2CppDumper.exe \ workspace/output/lib/arm64-v8a/libil2cpp.so \ workspace/output/assets/bin/Data/Managed/Metadata/global-metadata.dat \ workspace/output/il2cpp/ ``` ## 安装程序 ``` python scripts/install.py # Install missing tools python scripts/install.py --update # Update all to latest versions python scripts/install.py --verify # Verify all installations python scripts/install.py --dry-run # Preview without changes python scripts/install.py --tools-only # Only standalone tools (no pip) python scripts/install.py --pip-only # Only pip packages ``` 功能: - 从 GitHub Releases 下载,自动检测各平台的正确资源 - 采用暂存目录模式以安全更新(下载失败不会导致数据丢失) - narumii-deobfuscator 通过 Maven 从源码构建(自动下载) - phantom-frida 从带有 build-info.json 的私有 releases 获取 - GitHub token 支持 (`GITHUB_TOKEN` 环境变量) 以避免速率限制 - 在 `.tool_versions.json` 中进行版本跟踪 ## 输出约定 | 产物 | 路径 | |----------|------| | 分析报告 | `workspace/reports/-.md` | | 测试凭证 | `workspace/credentials/.json` | | 流量日志 | `workspace/traffic/-traffic.json` | | Postman 集合 | `workspace/collections/.json` | ## 许可证 MIT。参见 [LICENSE](LICENSE)。 本项目集成了多个开源工具,每个工具都有其各自的许可证。详情请参阅各个工具的代码仓库。
标签:AI驱动安全, Android SDK, API发现, APK分析, App安全测试, Claude Code, Docker支持, Frida, Ghidra, Jadx, JS文件枚举, Python, URL提取, 云安全监控, 去混淆, 反编译, 安卓逆向工程, 敏感信息扫描, 无后门, 流量拦截, 目录枚举, 移动安全, 自动化环境, 自定义脚本, 逆向工作流, 逆向工具, 静态分析