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-server是Apk 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
🤖 2. Claude 桌面设置
确保 Claude Desktop 在启用 MCP 的情况下运行。
例如,我对 Kali Linux 使用了以下内容: https://github.com/aaddrick/claude-desktop-debian
配置并将 MCP 服务器添加到 LLM 文件:
其中的内容如下:
然后,使用内置集成导航代码并通过实时代码审查提示进行交互。
报告错误、问题、功能建议、性能问题、一般问题、文档问题。
- 请针对相应的模板打开一个问题。
- 在 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
的开发者对因使用或误用本工具而造成的任何损害、数据丢失、法律后果或其他后果概不负责。用户对其行为以及由此造成的任何影响承担全部责任。
负责任地使用。尊重知识产权。遵循道德黑客实践。
用❤️为逆向工程和人工智能社区打造。
This server cannot be installed
与 Apktool 集成的 MCP 服务器通过模型上下文协议为使用 Claude 和其他 LLM 的 Android 应用程序提供实时逆向工程支持。