返回市场
apktool-mcp

apktool-mcp

作者:SecFathy26 星标更新:2025-06-26

项目介绍

Apktool MCP 服务器

MIT 许可证 Python 3.10+ MCP 兼容 Gemini CLI

一个强大的 模型上下文协议 (MCP) 服务器,提供了对 Apktool 功能的访问,用于 Android APK 的分析和逆向工程。与 Gemini CLI 完美集成,通过自然语言命令提供 AI 驱动的 APK 安全分析、隐私审计和逆向工程指导。

🚀 特性

🔍 全面的 APK 分析

  • 反编译 APK 提取资源、清单和 smali 代码
  • 分析权限 和应用组件进行安全评估
  • 提取字符串资源 并检测硬编码的秘密
  • 搜索 smali 代码 查找特定模式和安全漏洞
  • 重新编译修改后的 APK 在更改后

🤖 AI 驱动的工作流程

  • 自然语言命令 处理复杂的 APK 分析任务
  • 自动安全审计 带有 AI 生成的见解
  • 隐私合规检查 和 GDPR/CCPA 分析
  • 逐步逆向工程 指导
  • 智能漏洞检测 和风险评估

🛠 8 核心工具

工具描述
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 服务器

⚙️ 配置

Gemini CLI 集成

1. 安装 Gemini CLI

# 按照 https://github.com/google-gemini/gemini-cli 的说明操作

2. 配置 MCP 服务器

编辑您的 Gemini CLI 配置文件:

  • Linux/macOS: ~/.config/gemini-cli/config.json
  • Windows: %APPDATA%\gemini-cli\config.json
{
  "mcpServers": {
    "apktool": {
      "command": "python3",
      "args": ["/绝对路径到/apktool_server.py"],
      "env": {
        "APKTOOL_WORK_DIR": "/工作区路径"
      }
    }
  }
}

Claude Desktop 集成(替代方案)

编辑 Claude Desktop 配置:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.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    # 常见问题及解决方案

🔒 安全注意事项

⚠️ 重要安全注意事项

  • 法律合规:仅分析您拥有或明确许可分析的 APK
  • 恶意软件风险:未知 APK 可能包含恶意代码 - 在隔离环境中使用
  • 数据隐私:反编译的 APK 可能包含敏感用户信息
  • 工作区隔离:配置具有受限权限的专用工作区
  • 进程限制:服务器包括超时以防止资源耗尽

最佳实践

# 使用专用工作区
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