返回市场
apktool-MCP服务器

apktool-MCP服务器

作者:zinja-coder259 星标更新:2025-09-12

项目介绍

<div align="center">

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

⚡ 基于 apktool 构建的完全自动化的 MCP 服务器,用于通过像 Claude 这样的大语言模型分析 Android APK 文件——发现漏洞、解析清单文件并轻松进行逆向工程。

GitHub 贡献者 apktool-mcp-server GitHub 所有发布 GitHub 发布 (最新 SemVer) 最新发布 Python 3.10+ License

</div> <div align="center"> <img alt="banner" height="480px" width="620px" src="https://github.com/user-attachments/assets/eb9037f2-d1c7-45e0-8871-ca8aaade0dd0"> </div>

图像由 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 中导出的活动或接收器。”

  • “列出所有访问 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://。”

  • “在 AndroidManifest.xml 中的所有活动中添加 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-<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. 导航到 apktool-mcp-server 目录
cd apktool-mcp-server

# 5. 此项目使用 uv - https://github.com/astral-sh/uv 而不是 pip 来管理依赖项。
    ## a. 安装 uv(如果尚未安装)
curl -LsSf https://astral.sh/uv/install.sh | sh
    ## b. 可选,如果在 apktool-mcp-server 中遇到依赖错误,请设置环境
uv venv
source .venv/bin/activate  # 或 .venv\Scripts\activate 在 Windows 上
    ## c. 可选 安装依赖项
uv pip install httpx fastmcp

# apktool-mcp-server 的设置已完成。

2. 使用 Ollama 和 Zin MCP 客户端在本地 LLM 上运行 - 推荐

<div align="center"> <a href="https://github.com/zinja-coder/zin-mcp-client"> <img alt="zin-mcp-client" height="360px" width="480px" src="https://github.com/user-attachments/assets/0e8e0ecd-0520-422e-a007-03dc62c4118e"> </a> </div>

⚡ 轻量级、快速、基于 CLI 的 MCP 客户端,用于 STDIO MCP 服务器,填补了本地 LLM 运行 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
  • 命令:uv
  • 参数:
--directory
path/to/apktool-mcp-server
run
apktool_mcp_server.py
  • path/to/apktool-mcp-server 为克隆此存储库的实际绝对路径

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

  • 请使用相应的模板打开一个 issue。

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

🙏 致谢

该项目是一个为 Apktool 提供的 MCP 服务器,这是一个由 @iBotPeaches 创建和维护的出色开源 Android 逆向工程工具。所有核心 APK 解码和资源处理逻辑都属于他们。我只是扩展了它,以支持具有 AI 功能的 MCP 服务器。

📎 原始 README (Apktool)

Apktool 的原始 README.md 已在此仓库中包含以供参考和致谢。

还要感谢 @aaddrick 为基于 Debian 的 Linux 开发了 Claude desktop。

最后,感谢 @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 社区打造,充满爱心。