Apktool MCP Server

by zinja-coder
Verified

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Provides tools for Android APK reverse engineering, including decoding APKs, examining smali code, analyzing manifests, inspecting resources, building modified APKs, and signing APKs for installation.

  • Integration with Kali Linux for running the APKTool MCP server in a security-focused environment, specifically mentioning Claude Desktop for Debian-based Linux.

  • Features a demo video on YouTube showcasing the APKTool MCP server's capabilities for reverse engineering Android applications.

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

使用 AI 工具生成的图像。


🤖 什么是 apktool-mcp-server?

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

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

观看演示!

其他用于 Android 逆向工程的 MCP 服务器

当前的 MCP 工具

以下 MCP 工具可用:

  • build_apk() — 从解码的 APKTool 项目构建一个 APK。
  • list_workspace_projects() — 列出工作区中的所有 APKTool 项目目录。
  • 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() — 在具有指定扩展名的文件中搜索模式。
  • check_apktool_version() — 检查已安装的 APKTool 版本。
  • sign_apk() — 签署 APK 文件。
  • install_apk() — 使用 ADB 在连接的设备上安装并 APK。//将迁移到即将推出的 ADB MCP 服务器
  • extract_dex() — 从原始 APK 中提取 DEX 文件(如果项目中可用)。
  • list_packages() — 使用 ADB 列出已连接的 Android 设备上已安装的软件包。//将迁移到即将推出的 ADB MCP 服务器
  • analyze_permissions() — 分析 AndroidManifest.xml 中声明的权限。
  • clean_project() — 清理项目目录以准备重建。
  • create_project() — 创建一个新的空的 APKTool 项目结构。
  • delete_project() — 删除 APKTool 项目目录
  • compare_smali_files() — 比较两个 smali 文件并显示差异。
  • get_available_devices() — 获取通过 ADB 连接的可用 Android 设备列表**// 以便迁移到即将推出的 ADB MCP 服务器**
  • 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 ```bash # 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. Claude 桌面设置

确保 Claude Desktop 在启用 MCP 的情况下运行。

例如,我对 Kali Linux 使用了以下内容: https://github.com/aaddrick/claude-desktop-debian

配置并将 MCP 服务器添加到 LLM 文件:

nano ~/.config/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" ] } } }

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

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

  • 请针对相应的模板打开一个问题。
  • 在 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的开发者对因使用或误用本工具而造成的任何损害、数据丢失、法律后果或其他后果概不负责。用户对其行为以及由此造成的任何影响承担全部责任。

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


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

-
security - not tested
A
license - permissive license
-
quality - not tested

与 Apktool 集成的 MCP 服务器通过模型上下文协议为使用 Claude 和其他 LLM 的 Android 应用程序提供实时逆向工程支持。

  1. 🤖 What is apktool-mcp-server?
    1. Other MCP Servers For Android Reverse Engineering
      1. Current MCP Tools
      2. 🗒️ Sample Prompts
      3. 🛠️ Getting Started
      4. 🤖 2. Claude Desktop Setup
      5. To report bugs, issues, feature suggestion, Performance issue, general question, Documentation issue.
      6. 🙏 Credits
      7. 📄 License
      8. ⚖️ Legal Warning
    ID: jtugu4w3w9