zinja-coder/apktool-mcp-server
GitHub: zinja-coder/apktool-mcp-server
将 Apktool 封装为 MCP 服务器,使 LLM 能通过自然语言直接完成 Android APK 的反编译、静态分析和代码修改,实现 AI 驱动的移动端逆向工程。
Stars: 375 | Forks: 39
# apktool-mcp-server (Zin 逆向工程 MCP 套件的一部分)
⚡ 完全自动化的 MCP 服务器,基于 apktool 构建,可通过 Claude 等 LLM 分析 Android APK —— 发现漏洞、解析 manifest 并轻松进行逆向工程。





[](http://www.apache.org/licenses/LICENSE-2.0.html)
图像使用 AI 工具生成。
## 🤖 什么是 apktool-mcp-server?
**apktool-mcp-server** 是一个为 [Apk Tool](https://github.com/iBotPeaches/apktool) 设计的 MCP 服务器,直接集成了 [Model Context Protocol (MCP)](https://github.com/anthropic/mcp),以提供**使用 Claude 等 LLM 的实时逆向工程支持**。
你可以想象:“反编译 → 上下文感知代码审查 → AI 建议” —— 一切都在实时进行。
观看演示!
https://github.com/user-attachments/assets/d50251b8-6b1c-4341-b18e-ae54eb24a847
- **解决 CTF 挑战**
https://github.com/user-attachments/assets/c783a604-a636-4e70-9fa8-37e3d219b20b
## Zin MCP 套件中的其他项目
- **[JADX-AI-MCP](https://github.com/zinja-coder/jadx-ai-mcp)**
- **[JADX-MCP-Server](https://github.com/zinja-coder/jadx-mcp-server)**
- **[ZIN-MCP-Client](https://github.com/zinja-coder/zin-mcp-client)**
## 当前 MCP 工具
以下 MCP 工具可用:
- `build_apk()` — 从已解码的 APKTool 项目构建 APK。
- `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()` — 在具有指定扩展名的文件中搜索模式。
- `clean_project()` — 清理项目目录以准备重新构建。
- `decode_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 中是否有导出的 activity 或 receiver。”
- “列出所有访问 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 中的所有 activity 添加 android:exported=false 属性。”
- “修补 LoginManager.smali 中的 validateLogin 方法,使其始终返回 true。”
- “在 MainActivity.smali 的每个方法中添加日志语句。”
### 📄 文档和元数据
- “列出工作区中所有已解码的 APKTool 项目。”
- “向我展示 apktool.yml 配置,以查看版本、原始 APK 元数据和压缩设置。”
- “获取通过 ADB 连接的所有可用 Android 设备。(将迁移至 ADB MCP 服务器。)”
- “从其 apktool.yml 获取有关项目 dvac 的元数据。”
- “检查服务器上当前安装的 APKTool 版本。”
## 🛠️ 入门指南
### 1. 从 Releases 下载:https://github.com/zinja-coder/apktool-mcp-server/releases
```
# 0. 下载并安装 apktool
https://apktool.org/docs/install
# 1. 测试环境变量中是否已正确配置 apktool
$ apktool -version
# 2. 下载 apktool-mcp-server-
.zip
https://github.com/zinja-coder/apktool-mcp-server/releases
# 3.
unzip apktool-mcp-server-.zip
├apktool-mcp-server/
├── apktool_mcp_server.py
├── requirements.txt
├── README.md
├── LICENSE
# 4. 导航至 apktool-mcp-server 目录
cd apktool-mcp-server
# 5. 本项目使用 uv - https://github.com/astral-sh/uv 代替 pip 进行依赖管理。
## 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
# apktool-mcp-server 的设置已完成。
```
## 2. 使用 Ollama 和 Zin MCP Client 在本地 LLM 上运行 - 推荐
⚡ 轻量、快速、简单的基于 CLI 的 STDIO MCP 服务器客户端,用于填补空白并在运行 Ollama 的本地 LLM 与 MCP 服务器之间提供桥梁。
立即查看:https://github.com/zinja-coder/zin-mcp-client
演示:即将推出...
## 🤖 3. Claude Desktop 设置
确保 Claude Desktop 在启用 MCP 的情况下运行。
例如,我在 Kali Linux 上使用了以下版本:https://github.com/aaddrick/claude-desktop-debian
配置并将 MCP 服务器添加到 LLM 文件中:
```
nano ~/.config/Claude/claude_desktop_config.json
```
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
并在其中添加以下内容:
```
{
"mcpServers": {
"apktool-mcp-server": {
"command": "///uv",
"args": [
"--directory",
"apktool-mcp-server/",
"run",
"apktool_mcp_server.py"
]
}
}
}
```
替换:
- `path/to/uv` 为你的 `uv` 可执行文件的实际路径
- `path/to/apktool-mcp-server` 为你克隆此
仓库的绝对路径
然后,导航代码并通过内置集成使用实时代码审查提示词进行交互。
## 4. Cherry Studio 设置
如果你想在 Cherry Studio 中配置 MCP 工具,可以参考以下配置。
- Type: stdio
- command: uv
- argument:
```
--directory
path/to/apktool-mcp-server
run
apktool_mcp_server.py
```
- `path/to/apktool-mcp-server` 为你克隆此
仓库的绝对路径
## 报告错误、问题、功能建议、性能问题、一般性问题、文档问题。
- 请使用相应的模板开启一个 issue。
- 已在 Claude Desktop Client 上测试,对其他 AI 的支持将很快进行测试!
## 🙏 致谢
本项目是 [Apktool](https://github.com/iBotPeaches/apktool) 的一个 MCP 服务器,Apktool 是一个由 [@iBotPeaches](https://github.com/iBotPeaches) 创建和维护的惊人的开源 Android 逆向工程工具。所有核心的 APK 解码和资源处理逻辑都属于他们。我只是扩展了它,以支持我带有 AI 功能的 MCP 服务器。
[📎 原始 README (Apktool)](https://github.com/iBotPeaches/apktool)
Apktool 的原始 README.md 包含在此仓库中,以供参考和致敬。
同时非常感谢 [@aaddrick](https://github.com/aaddrick) 开发了基于 Debian 的 Linux 的 Claude desktop。
最后,感谢 [@anthropics](https://github.com/anthropics) 开发了 Model Context Protocol,以及 [@FastMCP](https://github.com/jlowin/fastmcp) 团队。
以及所有开源项目维护者和贡献者,他们提供了使此类项目成为可能的库和依赖项。
## 📄 许可证
apktool-mcp-server 及所有相关项目继承 Apache 2.0 许可证
## ⚖️ 法律警告
**免责声明**
`apktool-mcp-server` 工具及该项目下的所有相关工具仅限于教育、研究和道德安全评估目的。它们按“原样”提供,不附带任何明示或暗示的保证。用户全权负责确保其使用这些工具的行为符合所有适用的法律、法规和道德准则。
通过使用 `apktool-mcp-server`,你同意仅在您被授权测试的环境中使用它们,例如您拥有或获得明确许可分析的应用程序。严禁滥用这些工具进行未经授权的逆向工程、侵犯知识产权或进行恶意活动。
`apktool-mcp-server` 的开发者不承担因使用或滥用这些工具而造成的任何损害、数据丢失、法律后果或其他后果的责任。用户对其行为及其使用所造成的任何影响承担全部责任。
请负责任地使用。尊重知识产权。遵循道德黑客实践。
## 已审计并荣获评估徽章
[](https://mseep.ai/app/zinja-coder-apktool-mcp-server)
## 感谢 Mseep.net 进行审计并提供评估徽章。
用 ❤️ 为逆向工程和 AI 社区而构建。标签:AI安全, Android安全, apktool, APK分析, Chat Copilot, Claude, CTF工具, CVE检测, DLL 劫持, LLM工具, Manifest解析, MCP Server, Model Context Protocol, Python, URL提取, 云安全监控, 反编译, 大语言模型, 安卓逆向工程, 无后门, 漏洞搜索, 自动化安全分析, 运行时操纵, 逆向工具, 静态分析