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 并轻松进行逆向工程。 ![GitHub contributors apktool-mcp-server](https://img.shields.io/github/contributors/zinja-coder/apktool-mcp-server) ![GitHub all releases](https://img.shields.io/github/downloads/zinja-coder/apktool-mcp-server/total) ![GitHub release (latest by SemVer)](https://img.shields.io/github/downloads/zinja-coder/apktool-mcp-server/latest/total) ![Latest release](https://img.shields.io/github/release/zinja-coder/apktool-mcp-server.svg) ![Python 3.10+](https://img.shields.io/badge/python-3%2E10%2B-blue) [![License](http://img.shields.io/:license-apache-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0.html)
banner
图像使用 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` 的开发者不承担因使用或滥用这些工具而造成的任何损害、数据丢失、法律后果或其他后果的责任。用户对其行为及其使用所造成的任何影响承担全部责任。 请负责任地使用。尊重知识产权。遵循道德黑客实践。 ## 已审计并荣获评估徽章 [![MseeP.ai Security Assessment Badge](https://mseep.net/pr/zinja-coder-apktool-mcp-server-badge.png)](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提取, 云安全监控, 反编译, 大语言模型, 安卓逆向工程, 无后门, 漏洞搜索, 自动化安全分析, 运行时操纵, 逆向工具, 静态分析