Skip to main content
Glama

apktool-mcp-server(Zin 逆向工程 MCP 套件的一部分)

⚡ 在 apktool 之上构建的全自动 MCP 服务器,使用 Claude 等 LLM 分析 Android APK——轻松发现漏洞、解析清单和进行逆向工程。

GitHub 贡献者 apktool-mcp-serverGitHub 所有版本GitHub 版本(SemVer 最新版本)最新版本Python 3.10+ 执照

使用 AI 工具生成的图像。


🤖 什么是 apktool-mcp-server?

apktool-mcp-serverApk Tool的 MCP 服务器,它直接与模型上下文协议 (MCP)集成**,为 Claude 等 LLM 提供实时逆向工程支持**。

想想:“反编译→上下文感知代码审查→人工智能建议”——所有这些都是实时的。

观看演示!

https://github.com/user-attachments/assets/d50251b8-6b1c-4341-b18e-ae54eb24a847

  • 解决 CTF

https://github.com/user-attachments/assets/c783a604-a636-4e70-9fa8-37e3d219b20b

Related MCP server: Android source code

Zin MCP Suite 中的其他项目

当前的 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 中是否存在导出的活动或接收器。”

  • “列出所有访问 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 的内容。”

  • “列出所有布局类型的资源文件。”

  • “在所有资源和 smali 文件中搜索单词 password。”

  • “检查使用了哪些权限,并将其与典型的过度权限风险进行比较。”

🤖 AI代码修改

  • “修改 MainActivity.smali 中的 onCreate() 方法以添加 toast 消息。”

  • “将 strings.xml 中的所有 http:// 链接替换为 https://。”

  • “将 android:exported=false 属性添加到 AndroidManifest.xml 中的所有活动。”

  • “修补 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 # 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. 使用 Ollama 和 Zin MCP 客户端在本地 LLM 上运行 - 推荐

⚡ 轻量级、快速、简单、基于 CLI 的 STDIO MCP 服务器 MCP 客户端,用于填补空白并在运行 Ollama 和 MCP 服务器的本地 LLM 之间架起桥梁。

立即检查: https://github.com/zinja-coder/zin-mcp-client

演示:即将推出...

🤖 3. Claude 桌面设置

确保 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": "/<path>/<to>/uv", "args": [ "--directory", "</PATH/TO/>apktool-mcp-server/", "run", "apktool_mcp_server.py" ] } } }

代替:

  • path/to/uv替换为uv可执行文件的实际路径

  • path/to/apktool-mcp-server为您克隆此存储库的绝对路径

然后,使用内置集成导航代码并通过实时代码审查提示进行交互。

报告错误、问题、功能建议、性能问题、一般问题、文档问题。

  • 请针对相应的模板打开一个问题。

  • 在 Claude 桌面客户端上进行测试,对其他 AI 的支持将很快进行测试!

🙏 致谢

这个项目是Apktool的 MCP 服务器,Apktool 是一款出色的开源 Android 逆向工程工具,由@iBotPeaches创建和维护。所有核心 APK 解码和资源处理逻辑都属于他们。我只是对其进行了扩展,使其能够支持我的 MCP 服务器并具备 AI 功能。

📎 原始 README(Apktool)

Apktool 的原始 README.md 包含在此存储库中,以供参考和参考。

还要非常感谢@aaddrick为基于 Debian 的 Linux 开发 Claude 桌面。

最后,感谢@anthropics开发模型上下文协议和@FastMCP团队。

所有开源项目维护者和贡献者都提供了库和依赖项,使这样的项目成为可能。

📄 许可证

apktool-mcp-server 和所有相关项目继承了 Apache 2.0

⚖️ 法律警告

免责声明

本项目下的apktool-mcp-server工具及所有相关工具仅供教育、研究和伦理安全评估之用。所有工具均按“原样”提供,不附带任何明示或暗示的担保。用户应自行负责确保其使用这些工具符合所有适用的法律、法规和伦理准则。

使用apktool-mcp-server即表示您同意仅在您获得授权测试的环境中使用这些工具,例如您拥有的应用或您有明确分析权限的应用。严禁滥用这些工具进行未经授权的逆向工程、侵犯知识产权或进行恶意活动。

apktool-mcp-server的开发者对因使用或误用本工具而造成的任何损害、数据丢失、法律后果或其他后果概不负责。用户对其行为以及由此造成的任何影响承担全部责任。

负责任地使用。尊重知识产权。遵循道德黑客实践。


🙌 贡献或支持

贡献

欢迎贡献

  • 觉得有用吗?给它一个⭐️

  • 有想法?开个issue或提交 PR

  • 在上面建了什么东西?直接私信我或者提及我 — 我会把它添加到 README 中!


已审核并收到评估徽章

感谢 Mseep.net 的审核和提供评估徽章。

用❤️为逆向工程和人工智能社区打造。

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zinja-coder/apktool-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server