apktool-mcp-server(Zin 逆向工程 MCP 套件的一部分)
⚡ 在 apktool 之上构建的全自动 MCP 服务器,使用 Claude 等 LLM 分析 Android APK——轻松发现漏洞、解析清单和进行逆向工程。
使用 AI 工具生成的图像。
🤖 什么是 apktool-mcp-server?
apktool-mcp-server是Apk 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
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=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
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 文件:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
其中的内容如下:
代替:
path/to/uv
替换为uv
可执行文件的实际路径path/to/apktool-mcp-server
为您克隆此存储库的绝对路径
然后,使用内置集成导航代码并通过实时代码审查提示进行交互。
报告错误、问题、功能建议、性能问题、一般问题、文档问题。
- 请针对相应的模板打开一个问题。
- 在 Claude 桌面客户端上进行测试,对其他 AI 的支持将很快进行测试!
🙏 致谢
这个项目是Apktool的 MCP 服务器,Apktool 是一款出色的开源 Android 逆向工程工具,由@iBotPeaches创建和维护。所有核心 APK 解码和资源处理逻辑都属于他们。我只是对其进行了扩展,使其能够支持我的 MCP 服务器并具备 AI 功能。
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 的审核和提供评估徽章。
用❤️为逆向工程和人工智能社区打造。
local-only server
The server can only run on the client's local machine because it depends on local resources.
Tools
与 Apktool 集成的 MCP 服务器通过模型上下文协议为使用 Claude 和其他 LLM 的 Android 应用程序提供实时逆向工程支持。
Related MCP Servers
- -securityAlicense-qualityThis tool creates a Model Context Protocol (MCP) server that acts as a proxy for any API that has an OpenAPI v3.1 specification. This allows you to use Claude Desktop to easily interact with both local and remote server APIs.Last updated -195641JavaScriptMIT License
Fused MCP Agentsofficial
-securityAlicense-qualityA Python-based MCP server that allows Claude and other LLMs to execute arbitrary Python code directly through your desktop Claude app, enabling data scientists to connect LLMs to APIs and executable code.Last updated -23MIT License- -securityAlicense-qualityClaude MCP server that enables secure access to browse and read Android project files, validating authentic projects by checking for gradle configuration files.Last updated -PythonMIT License
- AsecurityAlicenseAqualityA Model Context Protocol (MCP) server that enables AI assistants to control and interact with Android devices, allowing for device management, app debugging, system analysis, and UI automation through natural language commands.Last updated -29143PythonApache 2.0