一个强大的 模型上下文协议 (MCP) 服务器,提供了对 Apktool 功能的访问,用于 Android APK 的分析和逆向工程。与 Gemini CLI 完美集成,通过自然语言命令提供 AI 驱动的 APK 安全分析、隐私审计和逆向工程指导。
| 工具 | 描述 |
|---|---|
decode_apk | 反编译 APK 文件以提取所有组件 |
build_apk | 从修改后的源目录重新编译 APK |
install_framework | 安装系统框架以分析系统应用 |
analyze_manifest | 解析 AndroidManifest.xml 获取权限和组件 |
extract_strings | 提取带有区域支持的字符串资源 |
list_permissions | 枚举所有请求的权限 |
find_smali_references | 在反编译的 smali 代码中查找模式 |
get_apk_info | 获取基本的 APK 元数据和信息 |
1. Java JDK 8+ (由 Apktool 所需)
# Ubuntu/Debian
sudo apt update && sudo apt install default-jdk
# macOS (Homebrew)
brew install openjdk
# 验证安装
java -version
2. Apktool (核心依赖)
# 选项 1:包管理器(推荐)
# Ubuntu/Debian
sudo apt install apktool
# macOS
brew install apktool
# 选项 2:手动安装
# 从 https://ibotpeaches.github.io/Apktool/install/ 下载
# 验证安装
apktool --version
3. Python 3.10+
python3 --version # 应该是 3.10 或更高版本
1. 克隆仓库
git clone https://github.com/SecFathy/APktool-MCP.git
cd APktool-MCP
2. 创建虚拟环境
python3 -m venv venv
source venv/bin/activate # Linux/macOS
# 或
venv\Scripts\activate # Windows
3. 安装依赖项
pip install -r requirements.txt
4. 测试安装
python3 apktool_server.py
# 应成功启动 MCP 服务器
1. 安装 Gemini CLI
# 按照 https://github.com/google-gemini/gemini-cli 的说明操作
2. 配置 MCP 服务器
编辑您的 Gemini CLI 配置文件:
~/.config/gemini-cli/config.json%APPDATA%\gemini-cli\config.json{
"mcpServers": {
"apktool": {
"command": "python3",
"args": ["/绝对路径到/apktool_server.py"],
"env": {
"APKTOOL_WORK_DIR": "/工作区路径"
}
}
}
}
编辑 Claude Desktop 配置:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.config/Claude/claude_desktop_config.json{
"mcpServers": {
"apktool": {
"command": "python3",
"args": ["/绝对路径到/apktool_server.py"],
"env": {
"APKTOOL_WORK_DIR": "/工作区路径"
}
}
}
}
# 启动 Gemini CLI
gemini
# 安全分析
> "分析 ./suspicious_app.apk 中的安全漏洞"
# 权限分析
> "查看 ./myapp.apk 请求了哪些权限,是否有危险权限?"
# 代码分析
> "在 ./social_app.apk 中查找任何硬编码的 API 密钥或秘密"
# 隐私审计
> "为 ./messenger_app.apk 生成隐私合规报告"
# 逆向工程
> "帮助我理解 ./banking_app.apk 中的身份验证是如何工作的"
# 反编译 APK
> 使用 decode_apk 反编译 ./sample.apk
# 分析权限
> 对解压后的目录 ./sample 使用 list_permissions
# 搜索模式
> 使用 find_smali_references 在 ./sample 中搜索 "crypto"
# 提取字符串
> 使用 extract_strings 从 ./sample 提取 "en" 区域的字符串
# 重建 APK
> 使用 build_apk 将 ./sample 重新编译为 ./sample_modified.apk
# 运行自动化安全分析
> 在 ./target_app.apk 上运行安全分析提示
# 执行隐私审计
> 执行隐私审计工作流为 ./social_media_app.apk
# 获取逆向工程指导
> 使用逆向工程指南分析 ./app.apk 中的登录功能
apktool-mcp-server/
├── apktool_server.py # 主 MCP 服务器实现
├── requirements.txt # Python 依赖项
├── config.json # 示例 Gemini CLI 配置
├── README.md # 本文件
├── GEMINI.md # AI 助手上下文文件
├── LICENSE # MIT 许可证
├── examples/ # 使用示例和样本
│ ├── sample_analysis.py # 示例分析脚本
│ └── workflows/ # 常见工作流示例
├── tests/ # 单元测试
│ ├── test_server.py # 服务器功能测试
│ └── test_tools.py # 单个工具测试
└── docs/ # 额外文档
├── SECURITY.md # 安全指南
├── CONTRIBUTING.md # 贡献指南
└── TROUBLESHOOTING.md # 常见问题及解决方案
# 使用专用工作区
export APKTOOL_WORK_DIR="/安全隔离的工作区"
# 设置适当的权限
chmod 750 /安全隔离的工作区
# 监控资源使用情况
htop # 在分析期间监控内存和 CPU
# 分析后清理
rm -rf /安全隔离的工作区/*
# 安装测试依赖项
pip install pytest pytest-asyncio
# 运行所有测试
pytest tests/
# 运行带覆盖率的测试
pytest --cov=apktool_server tests/
# 测试服务器启动
python3 apktool_server.py
# 使用示例 APK 测试基本功能
# 下载一个示例 APK 并测试基本功能
# 测试 Gemini CLI 集成
gemini
> /tools # 应列出 apktool 工具
> 使用 decode_apk 分析 sample.apk
我们欢迎贡献!请参阅 CONTRIBUTING.md 了解详情。
# 克隆并设置开发环境
git clone https://github.com/SecFathy/APktool-MCP.git
cd APktool-MCP
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
pip install -r requirements-dev.txt
# 运行测试
pytest
# 格式化代码
black apktool_server.py