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
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
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.jsonmacOS:
~/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 的审核和提供评估徽章。
用❤️为逆向工程和人工智能社区打造。