mcpField
A
apktool-mcp-server (Part of Zin's Reverse Engineering MCP Suite)

apktool-mcp-server (Part of Zin's Reverse Engineering MCP Suite)

本地服务
github.com/zinja-coder安全69417 周前更新

关于 apktool-mcp-server (Part of Zin's Reverse Engineering MCP Suite)

apktool-mcp-server 是基于 apktool 构建的 MCP 服务,供 Claude 等 LLM 分析 Android APK,包括解析清单、查看与修改 smali 代码和资源文件。它面向安全研究人员和逆向工程人员,属于 Zin 逆向工程 MCP 套件的一部分。

主要功能

  1. 01APK 反编译与项目构建
  2. 02解析 AndroidManifest.xml 与 apktool.yml
  3. 03列出、读取与修改 smali 文件
  4. 04查看与修改资源文件
  5. 05在项目文件中搜索模式

适用场景

  1. 01检查 APK 清单中的导出组件和危险权限
  2. 02在 smali 代码中搜索敏感 API 的调用位置
  3. 03修改 smali 代码后重新构建 APK 用于测试

MCP 相关

apktool-mcp-server 是一个 MCP 服务,向 MCP 客户端暴露 decode_apk、get_manifest、modify_smali_file 等工具,使 LLM 可以直接操作解码后的 APK 项目。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

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

⚡ 基于 apktool 构建的全自动 MCP 服务,可使用 Claude 等大模型分析 Android APK——发现漏洞、解析清单并轻松进行逆向工程。

GitHub contributors apktool-mcp-server GitHub all releases GitHub release (latest by SemVer) Latest release Python 3.10+ License

横幅

图片由 AI 工具生成。


🤖 什么是 apktool-mcp-server?

apktool-mcp-server 是一个用于 Apk Tool 的 MCP 服务,可直接集成 Model Context Protocol(MCP),为 Claude 等大模型提供实时逆向工程支持。

可以这样理解:“反编译 → 上下文感知代码审查 → 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 套件中的其他项目

当前 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 中为所有 activities 添加 android:exported=false 属性。”

  • “修补 LoginManager.smali 中的 validateLogin 方法,使其始终返回 true。”

  • “在 MainActivity.smali 的每个方法中添加日志语句。”

📄 文档和元数据
  • “列出工作区中所有已解码的 APKTool 项目。”

  • “显示 apktool.yml 配置,以查看版本、原始 APK 元数据和压缩设置。”

  • “获取通过 ADB 连接的所有可用 Android 设备。(将迁移至 ADB MCP Server。)”

  • “从 apktool.yml 获取 dvac 项目的元数据。”

  • “检查服务器上当前安装的 APKTool 版本。”


🛠️ 开始使用

1. 从 Releases 下载:https://github.com/zinja-coder/apktool-mcp-server/releases
# 0. Download and install apktool
https://apktool.org/docs/install

# 1. Test whether apktool has been correctly configured in the environment variables
$ apktool -version

# 2. Download the apktool-mcp-server-<version>.zip
https://github.com/zinja-coder/apktool-mcp-server/releases

# 3. 
unzip apktool-mcp-server-<version>.zip

├apktool-mcp-server/
  ├── apktool_mcp_server.py
  ├── requirements.txt
  ├── README.md
  ├── LICENSE

# 4. Navigate to apktool-mcp-server directory
cd apktool-mcp-server

# 5. 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 Client 运行本地大模型 — 推荐

⚡ 轻量、快速、简洁、基于命令行的 MCP 客户端,适用于 STDIO MCP 服务,可弥合本地 Ollama 大模型与 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": "/<path>/<to>/uv", 
            "args": [
                "--directory",
                "</PATH/TO/>apktool-mcp-server/",
                "run",
                "apktool_mcp_server.py"
            ]
        }
    }
}

替换:

  • 将 path/to/uv 替换为 uv 可执行文件的实际路径
  • 将 path/to/apktool-mcp-server 替换为克隆此仓库的绝对路径

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

4. Cherry Studio 设置

如果要在 Cherry Studio 中配置 MCP 工具,可参考以下配置。

  • 类型:stdio
  • command:uv
  • 参数:
--directory
path/to/apktool-mcp-server
run
apktool_mcp_server.py
  • 将 path/to/apktool-mcp-server 替换为克隆此仓库的绝对路径

报告 Bug、问题、功能建议、性能问题、一般疑问或文档问题。

  • 请使用相应模板提交 issue。

  • 已在 Claude Desktop 客户端上测试,近期将测试对其他 AI 的支持!

🙏 致谢

本项目是一个用于 Apktool 的 MCP 服务。Apktool 是一款出色的开源 Android 逆向工程工具,由 @iBotPeaches 创建并维护。所有 APK 解码和资源处理的核心逻辑均归其所有。我只是在此基础上扩展了 AI 功能,以支持我的 MCP 服务。

📎 Apktool 原始 README

此仓库中包含 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 的开发者概不负责。用户须对自身行为及其使用造成的任何影响承担全部责任。

请负责任地使用。尊重知识产权。遵循符合伦理的黑客实践。


🙌 参与贡献或提供支持

参与贡献

欢迎贡献

  • 觉得有用?点个 ⭐️
  • 有想法?创建一个 issue 或提交 PR
  • 基于此项目构建了新内容?给我发私信或提及我——我会把它添加到 README 中!

已通过审计并获得评估徽章

MseeP.ai 安全评估徽章

感谢 Mseep.net 执行审计并提供评估徽章。

为逆向工程和 AI 社区倾情打造 ❤️。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。