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提取, 云安全监控, 去混淆, 反编译, 安卓逆向工程, 敏感信息扫描, 无后门, 流量拦截, 目录枚举, 移动安全, 自动化环境, 自定义脚本, 逆向工作流, 逆向工具, 静态分析