返回 MCP 目录
public公开dns本地运行

il2cpp-frida-mcp

一个基于MCP协议的IL2CPP逆向工程工具,通过Frida连接Unity IL2CPP应用,使AI助手能够直接分析和操作游戏运行时数据。

article

README

🚀 IL2CPP Frida MCP 服务器

这是一个基于模型上下文协议(MCP)的 IL2CPP 逆向工程工具,它能让 AI 助手(如 Claude、Kiro)直接分析和操作 Unity IL2CPP 应用程序。

✨ 主要特性

  • 🔌 Frida 集成 - 支持 USB、远程和本地设备连接
  • 📦 IL2CPP 分析 - 列出镜像、类、方法,并支持模糊搜索
  • 🔍 反汇编 - 基于 Frida 指令 API 进行方法反汇编
  • 🧠 GC 堆分析 - 查找运行时对象实例
  • 📤 导入/导出 - 查找模块的导入和导出函数
  • 🛠️ JS 执行 - 执行任意 JavaScript 代码以操作 Frida API

📦 安装指南

选项 1:使用 pip 安装(推荐)

# 从源码安装
pip install .

# 或者以开发模式安装
pip install -e .

选项 2:手动安装依赖

pip install -r requirements.txt

编译 Frida 代理

npm install
npm run build

💻 使用示例

启动 MCP 服务器

# 如果通过 pip 安装
il2cpp-frida-mcp                        # 交互式选择
il2cpp-frida-mcp --stdio                # stdio 模式
il2cpp-frida-mcp --sse                  # SSE 模式
il2cpp-frida-mcp --http                 # HTTP 模式

# 或者直接运行脚本
python mcp_server.py --stdio

# 自定义主机和端口
il2cpp-frida-mcp --sse --host 0.0.0.0 --port 9000

配置 MCP 客户端

Claude 桌面版 / Kiro

添加到你的 MCP 配置文件中:

{
  "mcpServers": {
    "il2cpp-frida": {
      "command": "il2cpp-frida-mcp",
      "args": ["--stdio"]
    }
  }
}

或者使用 Python 模块运行:

{
  "mcpServers": {
    "il2cpp-frida": {
      "command": "python",
      "args": ["-m", "mcp_server", "--stdio"]
    }
  }
}

📚 详细文档

Frida 基础工具

| 工具 | 描述 | |------|-------------| | frida_list_devices | 列出所有可用的 Frida 设备 | | frida_connect | 连接到设备和目标进程 | | frida_disconnect | 断开 Frida 连接 | | frida_resume | 恢复暂停的进程 | | frida_list_processes | 列出设备上的进程 |

IL2CPP 分析工具

| 工具 | 描述 | |------|-------------| | il2cpp_list_images | 列出所有 IL2CPP 镜像 | | il2cpp_list_classes | 列出指定镜像中的所有类 | | il2cpp_list_methods | 列出指定类中的所有方法 | | il2cpp_show_method | 显示方法详细信息 | | il2cpp_find_classes | 查找类(支持模糊匹配) | | il2cpp_find_methods | 查找方法(支持模糊匹配) | | il2cpp_show_asm | 反汇编方法 | | il2cpp_find_export | 查找导出函数 | | il2cpp_find_import | 查找导入函数 | | il2cpp_exec_js | 执行任意 JavaScript 代码 | | il2cpp_gc_choose | 在堆中查找指定类的实例 | | il2cpp_gc_info | 获取 GC 堆信息 |

示例

1. 连接到设备

使用 frida_connect 连接到 USB 设备上最前端的应用程序

2. 分析 IL2CPP

列出所有镜像,然后查找包含 "Player" 的类

3. 查看方法详细信息

列出 PlayerController 类的所有方法,然后查看 Update 方法的详细信息

🔧 技术细节

项目结构

.
├── mcp_server.py           # 入口点
├── mcp_server/             # MCP 服务器模块
│   ├── __init__.py
│   ├── server.py           # MCP 服务器核心
│   ├── state.py            # Frida 状态管理
│   ├── tools.py            # MCP 工具定义
│   ├── transport.py        # 传输层(stdio/sse/http)
│   ├── cli.py              # 命令行界面
│   ├── agent_loader.py     # 代理加载器
│   └── handlers/           # 工具处理程序
│       ├── __init__.py
│       ├── frida_handlers.py
│       └── il2cpp_handlers.py
├── agent/                  # Frida 代理(TypeScript)
│   ├── index.ts            # 代理入口点
│   ├── core/               # 核心模块
│   │   ├── il2cpp-helper.ts
│   │   ├── method-utils.ts
│   │   └── class-finder.ts
│   └── services/           # 服务模块
│       ├── image-service.ts
│       ├── class-service.ts
│       ├── method-service.ts
│       ├── disasm-service.ts
│       ├── module-service.ts
│       ├── gc-service.ts
│       └── exec-service.ts
├── _agent.js               # 编译后的代理
├── package.json
├── tsconfig.json
└── requirements.txt

开发

编译代理

npm run build     # 单次编译
npm run watch     # 监听模式

依赖项

  • Python 3.10+
  • Node.js 16+
  • Frida 17+
  • frida-il2cpp-bridge

📄 许可证

MIT

致谢

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端