安卓逆向工程MCP服务器
一个Python MCP服务器(FastMCP),用于反编译Android APK/XAPK/JAR/AAR文件和 提取HTTP API 由应用程序使用——改装端点、OkHttp调用、硬编码URL、身份验证模式——因此您可以在没有原始源代码的情况下记录和复制它们。
它做什么
- 分解 使用jadx和Fernflower/Vineflower的APK、XAPK、JAR和AAR文件(单引擎或并排比较)
- 提取和记录API:改装端点、OkHttp调用、硬编码URL、身份验证头和令牌
- 跟踪呼叫流 从活动/片段到ViewModel和存储库,再到HTTP调用
- 分析 应用程序结构:清单、包、架构模式
- 处理混淆的代码:导航ProGuard/R8输出的策略
需求
必修的:
- Python 3.10+
- Java JDK 17+
- jadx (CLI)
可选(推荐):
- dex2jar --需要在APK/DEX文件上使用Fernflower
有关详细的安装说明,请参阅docs/references/setup-guide.md。
MCP服务器使用情况
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python server.py默认情况下,服务器通过stdio(FastMCP)运行。配置您的MCP客户端以启动 python server.py 在这个存储库中。
添加到克劳德桌面
- 打开克劳德桌面设置,找到MCP服务器配置文件。
常见位置(可能因安装而异): - macOS:~/库/应用程序支持/Claude/Claude_desktop_config json - Windows:%APPDATA%\\Claude\\Claude_desktop_config.json - Linux:~/.config/Claude/Claude_desktop_config json
- 添加这样的服务器条目(更新仓库的路径):
{
"mcpServers": {
"android-reverse-engineering": {
"command": "python3",
"args": ["server.py"],
"cwd": "/Users/yourname/path/android-reverse-engineering-mcp-server"
}
}
}- 重新启动克劳德桌面。
添加到VS代码
- 安装与MCP兼容的扩展(如MCP客户端扩展)。
- 使用与上述相同的命令/args/cwd添加服务器条目。
- 重新启动VS Code并在扩展UI中启用服务器。
MCP工具
check_dependencies--运行scripts/check-deps.sh并返回缺少的必需/可选工具install_dependency--为命名依赖项运行scripts/install-dep.shdecompile--用engine/flags包装scripts/decompile.shfind_api_calls--包装脚本/find-api-calls.sh用于改装/OkHttp/URL/auth搜索workflow-在一个步骤中运行依赖项检查、反编译和API扫描
工作流输出模式:docs/Workflow-schema.json
手动脚本
这些脚本也可以单独使用:
# Check dependencies
bash scripts/check-deps.sh
# Install a missing dependency (auto-detects OS and package manager)
bash scripts/install-dep.sh jadx
bash scripts/install-dep.sh vineflower
# Decompile APK with jadx (default)
bash scripts/decompile.sh app.apk
# Decompile XAPK (auto-extracts and decompiles each APK inside)
bash scripts/decompile.sh app-bundle.xapk
# Decompile with Fernflower
bash scripts/decompile.sh --engine fernflower library.jar
# Run both engines and compare
bash scripts/decompile.sh --engine both --deobf app.apk
# Find API calls
bash scripts/find-api-calls.sh output/sources/
bash scripts/find-api-calls.sh output/sources/ --retrofit
bash scripts/find-api-calls.sh output/sources/ --urls参考文献
- jadx——Dex到Java的反编译器
- Fernflower——JetBrains分析反编译器
- 藤本植物——Fernflower社区叉子
- dex2jar——DEX到JAR转换器
- apktool--Android资源解码器
免责声明
此工具严格用于 合法目的包括但不限于:
- 安全研究和授权渗透测试
- 适用法律允许的互操作性分析(例如,欧盟指令2009/24/EC、美国DMCA§1201(f))
- 恶意软件分析和事件响应
- 教育用途和CTF竞赛
您全权负责 确保您使用此工具符合所有适用的法律、法规和服务条款。未经授权对您不拥有或无权分析的软件进行逆向工程可能会违反您所在司法管辖区的知识产权法和计算机欺诈法规。
作者对误用此工具不承担任何责任。
许可证
Apache 2.0——请参阅 许可证
