APK Editor MCP
一个强大的 Android APK 逆向工程 MCP (Model Context Protocol) 服务器,支持 APK 反编译、修改、重打包,以及快速 DEX 内存编辑。
特性
- 快速 DEX 编辑 - 内存操作,无需解包,秒级打开大型 APK
- Smali 转 Java - 内置 jadx-core,一键反编译
- 智能搜索 - 搜索类名、字符串、方法调用
- 实时修改 - 直接修改 smali 代码并保存
- 批量操作 - 批量反编译整个包
安装
前置要求
安装步骤
# 克隆仓库
git clone https://github.com/your-repo/apk-editor-mcp.git
cd apk-editor-mcp
# 安装依赖
pip install -e .
# 配置 Windsurf/Cursor MCP
MCP 配置
在 ~/.codeium/windsurf/mcp_config.json 中添加:
{
"mcpServers": {
"apk-editor": {
"command": "python",
"args": ["K:/path/to/APK-Editor-MCP-Server/mcp-server/run_server.py"]
}
}
}
工具列表
快速 DEX 编辑器 (推荐)
| 工具 |
说明 |
fast_dex_open |
打开 APK 加载 DEX 到内存(秒开) |
fast_dex_list_classes |
列出所有类 |
fast_dex_search_class |
搜索类名(支持正则) |
fast_dex_get_class |
获取类的 smali 代码 |
fast_dex_summary |
获取类摘要(方法列表、代码长度) |
fast_dex_get_paged |
分页获取 smali(避免超 token) |
fast_dex_modify_class |
修改类的 smali 代码 |
fast_dex_save |
保存修改到 APK |
fast_dex_to_java |
smali 转 Java 代码 |
fast_dex_deobfuscate |
反混淆并转 Java |
fast_dex_decompile_package |
批量反编译包下所有类 |
fast_dex_close |
关闭编辑器 |
APK 操作
| 工具 |
说明 |
apk_decode |
反编译 APK 到目录 |
apk_build |
从目录构建 APK |
apk_info |
获取 APK 信息 |
apk_sign |
签名 APK(默认debug.keystore) |
apk_verify |
验证 APK 签名 |
fast_manifest_read |
快速读取 AndroidManifest.xml |
fast_manifest_modify |
快速修改 AndroidManifest.xml |
fast_manifest_patch |
快速修补 Manifest(正则替换) |
apk_merge |
合并分割 APK (XAPK/APKS) |
apk_protect |
保护/混淆 APK 资源 |
apk_refactor |
反资源混淆 |
文件操作
| 工具 |
说明 |
file_list |
列出目录内容 |
file_read |
读取文件 |
file_write |
写入文件 |
file_copy |
复制文件 |
file_move |
移动文件 |
file_delete |
删除文件 |
Smali 操作
| 工具 |
说明 |
smali_parse |
解析 smali 文件结构 |
smali_get_method |
提取指定方法 |
smali_replace_method |
替换方法实现 |
smali_insert_code |
在方法中插入代码 |
smali_gen_log |
生成 Log.d 调用代码 |
smali_gen_return |
生成 return 语句代码 |
ADB 工具
| 工具 |
说明 |
adb_list_devices |
列出所有连接的设备 |
adb_install |
安装 APK 到设备 |
adb_uninstall |
卸载应用 |
adb_logcat |
获取设备日志 |
adb_screenshot |
截取设备屏幕 |
adb_device_info |
获取设备详细信息 |
adb_list_packages |
列出已安装的应用 |
adb_clear_data |
清除应用数据 |
资源编辑工具
| 工具 |
说明 |
res_read_strings |
读取 strings.xml |
res_modify_string |
修改单个字符串 |
res_batch_modify_strings |
批量修改字符串 |
res_read_colors |
读取 colors.xml |
res_modify_color |
修改颜色值 |
res_search |
搜索资源内容 |
res_list_files |
列出资源文件 |
res_read_xml |
读取任意 XML 资源 |
res_modify_xml |
修改任意 XML 资源 |
res_add_string |
添加新字符串 |
res_delete_string |
删除字符串 |
搜索工具
| 工具 |
说明 |
search_text |
搜索文本内容 |
search_string |
搜索 smali 字符串常量 |
search_method |
搜索方法调用 |
find_class |
查找类文件路径 |
list_classes |
列出所有 smali 类 |
使用示例
快速破解 VIP
# 1. 打开 APK
fast_dex_open("app.apk")
# 2. 搜索 VIP 相关类
fast_dex_search_class("VipInfo")
# 3. 查看类结构
fast_dex_summary("Lcom/example/VipInfo;")
# 4. 获取并查看代码
fast_dex_to_java("Lcom/example/VipInfo;")
# 5. 修改 isVip 方法返回 true
fast_dex_modify_class("Lcom/example/VipInfo;", new_smali_code)
# 6. 保存
fast_dex_save("app_cracked.apk")
搜索字符串
# 搜索登录相关
fast_dex_search_string("login")
fast_dex_search_string("password")
批量反编译
# 反编译整个包
fast_dex_decompile_package("com.example.app.*")
完整破解流程(含ADB测试)
# 1. 打开APK
fast_dex_open("app.apk")
# 2. 修改VIP验证
fast_dex_modify_class("Lcom/example/VipInfo;", new_smali_code)
# 3. 保存并签名
fast_dex_save("app_cracked.apk")
apk_sign(apk_path="app_cracked.apk")
# 4. 安装到设备测试
adb_list_devices() # 查看连接的设备
adb_install(apk_path="app_cracked_signed.apk", replace=True)
# 5. 查看运行日志
adb_logcat(filter_tag="VipInfo", lines=50)
# 6. 清除数据重新测试
adb_clear_data(package_name="com.example.app")
项目结构
APK-Editor-MCP-Server/
├── mcp-server/ # Python MCP 服务器
│ ├── apk_editor_mcp/
│ │ ├── server.py # MCP 服务器主文件
│ │ ├── fast_dex.py # 快速 DEX 编辑器
│ │ ├── apk_editor.py # APK 操作工具
│ │ ├── file_utils.py # 文件操作
│ │ ├── smali_utils.py# Smali 操作
│ │ └── search_utils.py # 搜索工具
│ ├── run_server.py # 启动脚本
│ └── requirements.txt
├── java-core/ # Kotlin/Java DEX 编辑核心
│ ├── src/main/kotlin/
│ │ └── com/apkeditor/dex/
│ │ ├── DexEditor.kt # DEX 编辑器核心
│ │ └── Main.kt # 命令行入口
│ ├── build.gradle.kts
│ └── build/libs/
│ └── dex-editor.jar # 编译产物
├── libs/
│ ├── APKEditor.jar # APK 编辑核心
│ ├── dex-editor.jar # DEX 编辑器(内置 jadx-core)
│ └── apksigner.jar # APK 签名工具
└── README.md
技术栈
- Python - MCP 服务器
- Kotlin - DEX 编辑器核心
- dexlib2/smali - DEX 操作库
- jadx-core - Java 反编译
- APKEditor - APK 打包工具
License
MIT License
贡献
欢迎提交 Issue 和 Pull Request!