Apktool-MCP 服务器
一个集成了Apktool的MCP服务器,通过模型上下文协议使用Claude和其他大语言模型为Android应用程序提供实时反向工程支持。
服务介绍
apktool-mcp-server (Zin 的反向工程 MCP 套件的一部分)
图片由 AI 工具生成。
🤖 apktool-mcp-server 是什么?
apktool-mcp-server 是 Apk Tool 的一个 MCP 服务器,它直接与 模型上下文协议 (MCP) 集成,提供 实时反向工程支持,如 Claude 等大型语言模型。
想象一下:“反编译 → 上下文感知代码审查 → AI 建议” —— 全部实时完成。
观看演示!
其他用于 Android 反向工程的 MCP 服务器
当前可用的 MCP 工具
以下是可用的 MCP 工具:
build_apk()— 从解码的 APKTool 项目构建 APK。list_workspace_projects()— 列出工作空间中的所有 APKTool 项目目录。get_manifest()— 从解码的 APK 项目中获取 AndroidManifest.xml 的内容。get_apktool_yml()— 从解码的 APK 项目中获取 apktool.yml 信息。list_smali_directories()— 列出项目中的所有 smali 目录。list_smali_files()— 列出特定 smali 目录中的 smali 文件,可选地按包前缀过滤。get_smali_file()— 通过类名获取特定 smali 文件的内容。modify_smali_file()— 修改特定 smali 文件的内容。list_resources()— 列出项目中的资源,可选地按资源类型过滤。get_resource_file()— 获取特定资源文件的内容。modify_resource_file()— 修改特定资源文件的内容。search_in_file()— 在具有指定扩展名的文件中搜索模式。check_apktool_version()— 检查已安装的 APKTool 版本。sign_apk()— 签名 APK 文件。install_apk()— 使用 ADB 在连接的设备上安装 APK。// 将迁移到即将推出的 ADB MCP Serverextract_dex()— 从原始 APK 中提取 DEX 文件(如果项目中可用)。list_packages()— 使用 ADB 列出连接的 Android 设备上已安装的包。// 将迁移到即将推出的 ADB MCP Serveranalyze_permissions()— 分析 AndroidManifest.xml 中声明的权限。clean_project()— 清理项目目录以准备重新构建。create_project()— 创建一个新的空 APKTool 项目结构。delete_project()— 删除 APKTool 项目目录。compare_smali_files()— 比较两个 smali 文件并显示差异。get_available_devices()— 获取通过 ADB 连接的可用 Android 设备列表。// 将迁移到即将推出的 ADB MCP Serverdecode_apk()— 使用 APKTool 解码 APK 文件,提取资源和 smali 代码。
🗒️ 示例提示
🔍 基本代码理解
-
“列出 dvac 项目的所有 smali 目录。”
-
“显示 dvac 项目中 com.vulnerable.component 包前缀下的所有 smali 文件。”
-
“获取 com.vulnerable.component.MainActivity 类的 smali 代码。”
-
“比较 MainActivity.smali 与其旧版本并显示差异。”
-
“在 dvac 项目的 smali 文件中搜索 startActivity 的使用。”
🛡️ 漏洞检测
-
“分析 dvac 的 AndroidManifest.xml 中声明的权限,并标记危险的权限。”
-
“在项目中的所有 .xml 和 .smali 文件中搜索硬编码的 URL 或 IP。”
-
“查找 smali 文件中所有对 PendingIntent.getActivity 的使用。”
-
“检查 dvac 的 AndroidManifest.xml 中导出的活动或接收器。”
-
“列出所有访问 android.permission.SEND_SMS 或 READ_CONTACTS 的 smali 文件。”
🛠️ 反向工程辅助工具
-
“解码此 APK: dvac.apk 并创建一个名为 dvac 的项目。”
-
“创建一个名为 test-harness 的新 APKTool 项目。”
-
“在重建之前清理 dvac 项目。”
-
“从 dvac 项目中提取 DEX 文件以进行外部分析。”
-
“修改 MainActivity.smali,在 onCreate() 开始处插入一条日志语句。”
📦 静态分析
-
“从 dvac 项目中获取完整的 AndroidManifest.xml。”
-
“显示 dvac 项目的 apktool.yml 内容。”
-
“列出所有类型为 layout 的资源文件。”
-
“在所有资源和 smali 文件中搜索单词 password。”
-
“检查使用了哪些权限,并与典型的过度授权风险进行比较。”
🤖 AI 代码修改
-
“修改 MainActivity.smali 中的 onCreate() 方法,添加一条 Toast 消息。”
-
“将 strings.xml 中的所有 http:// 链接替换为 https://。”
-
“在 AndroidManifest.xml 中为所有活动添加 android:exported=false 属性。”
-
“修补 LoginManager.smali 中的 validateLogin 方法,使其始终返回 true。”
-
“向 MainActivity.smali 中的每个方法添加日志语句。”
📄 文档与元数据
-
“列出工作区中的所有已解码 APKTool 项目。”
-
“显示 apktool.yml 配置,以便审查版本、原始 APK 元数据和压缩设置。”
-
“获取通过 ADB 连接的所有可用 Android 设备。(将迁移到 ADB MCP 服务器。)”
-
“从其 apktool.yml 获取关于 dvac 项目的元数据。”
-
“检查当前安装在服务器上的 APKTool 版本。”
🛠️ 开始使用
1. 从发布版下载: https://github.com/zinja-coder/apktool-mcp-server/releases
# 0. Download the apktool-mcp-server-<version>.zip
https://github.com/zinja-coder/apktool-mcp-server/releases
# 1.
unzip apktool-mcp-server-<version>.zip
├apktool-mcp-server/
├── apktool_mcp_server.py
├── requirements.txt
├── README.md
├── LICENSE
```bash
# 2. Navigate to apktool-mcp-server directory
cd apktool-mcp-server
# 3. This project uses uv - https://github.com/astral-sh/uv instead of pip for dependency management.
## a. Install uv (if you dont have it yet)
curl -LsSf https://astral.sh/uv/install.sh | sh
## b. OPTIONAL, if for any reasons, you get dependecy errors in apktool-mcp-server, Set up the environment
uv venv
source .venv/bin/activate # or .venv\Scripts\activate on Windows
## c. OPTIONAL Install dependencies
uv pip install httpx fastmcp
# The setup for apktool-mcp-server is done.
🤖 2. Claude Desktop 设置
确保 Claude Desktop 正在运行并启用了 MCP。
例如,我在 Kali Linux 上使用了以下配置:https://github.com/aaddrick/claude-desktop-debian
配置并将 MCP 服务器添加到 LLM 文件中:
nano ~/.config/Claude/claude_desktop_config.json
并在其中添加以下内容:
{
"mcpServers": {
"apktool-mcp-server": {
"command": "/<path>/<to>/uv",
"args": [
"--directory",
"</PATH/TO/>apktool-mcp-server/",
"run",
"apktool_mcp_server.py"
]
}
}
}
然后,导航代码并通过内置集成使用实时代码审查提示进行交互。
报告错误、问题、功能建议、性能问题、一般问题、文档问题。
-
请使用相应的模板打开一个问题。
-
已在 Claude Desktop 客户端上测试,对其他 AI 的支持将很快进行测试!
🙏 致谢
该项目是 Apktool 的 MCP 服务器,Apktool 是由 @iBotPeaches 创建和维护的一款出色的开源 Android 反向工程工具。所有核心 APK 解码和资源处理逻辑都归功于他们。我仅扩展了它以支持我的带有 AI 功能的 MCP 服务器。
Apktool 的原始 README.md 包含在此存储库中以供参考和致谢。
还要特别感谢 @aaddrick 为基于 Debian 的 Linux 开发了 Claude 桌面版。
并在最后,感谢@anthropics 开发了 Model Context Protocol 以及 @FastMCP 团队。
📄 许可证
apktool-mcp-server 及所有相关项目继承了 Apache 2.0 许可证。
⚖️ 法律警告
免责声明
工具 apktool-mcp-server 及此项目下的所有相关工具仅限于教育、研究和道德安全评估目的。它们按“原样”提供,不附带任何明示或暗示的保证。用户需独自负责确保其使用这些工具的行为符合所有适用的法律、法规和道德准则。
通过使用 apktool-mcp-server,您同意仅在您被授权测试的环境中使用这些工具,例如您自己拥有的应用程序或您明确获得许可分析的应用程序。未经许可的逆向工程、侵犯知识产权或恶意活动等滥用行为是严格禁止的。
apktool-mcp-server 的开发者不对因使用或误用这些工具而造成的任何损害、数据丢失、法律责任或其他后果承担责任。用户对其行为及其使用所造成的影响承担全部责任。
请负责任地使用。尊重知识产权。遵循道德黑客实践。
怀着对逆向工程和人工智能社区的热爱而构建。
