APK逆向工程工具

一个强大的Android APK逆向工程工具,支持APK反编译、修改、重打包以及快速DEX内存编辑。

  • by 1600822305
  • Python
  • 本地部署
  • 9 星标
  • 更新于
在 GitHub 查看 1600822305/APK-Editor-MCP-Server

使用说明

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!