wjx8885577 发表于 2026-1-3 09:42

Cheat Engine MCP AI 辅助逆向工程桥接工具

本帖最后由 wjx8885577 于 2026-1-5 13:14 编辑

# 项目介绍

## 核心亮点

🤖 AI 驱动:支持通过自然语言控制 CE,降低逆向门槛
🛠️ 功能完整:57 个 MCP 工具覆盖逆向全流程(内存读写/扫描/断点/分析/Hook)
🔌 架构优雅:AI ← MCP/JSON-RPC → Python Server ← Named Pipe → CE Lua Bridge













--------------------------------------------------------------------------------

# 快速开始

## 安装依赖

```bash
pip install pywin32
```

## CE 加载桥接

在 Cheat Engine 中按 Ctrl+Alt+L 执行:

```lua
dofile([])
```
或者把ce_mcp_bridge.lua放进Cheat Engine目录的autorun文件夹里面

## 配置 MCP 客户端

```json
{
"mcpServers": {
    "cheat-engine": {
      "command": "python",
      "args": ["C:\\ce_mcp\\ce_mcp_server.py"]
    }
}
}
```

--------------------------------------------------------------------------------

# 使用示例

## 示例 1:自动指针追踪

用户指令:找到玩家血量的静态指针

AI 调用:
```json
ce_find_pointer_path("0x12345678")
```

返回结果:
```json
{
"success": true,
"base_address": "game.exe",
"offsets": ,
"ce_pointer_notation": "[+20]+8"
}
```

## 示例 2:函数 Hook

用户指令:Hook 伤害计算函数并记录参数

AI 调用:
```json
ce_hook_function("0x401000", "damage_func", {"capture_args": 4})
```

让游戏运行后调用:
```json
ce_get_hook_log("damage_func")
```

返回结果:
```json
{
"total_calls": 64,
"entries": [
    {"args": {"arg1": "0x255D5E758", "arg2": "100", "arg3": "50", "arg4": "1"}},
    {"args": {"arg1": "0x255D5E758", "arg2": "95", "arg3": "50", "arg4": "2"}}
]
}
```

## 示例 3:执行追踪

用户指令:追踪这个函数的执行流程

AI 调用:
```json
ce_break_and_trace("0x401000", {"max_steps": 100})
```

返回结果:
```json
{
"steps": 100,
"stop_reason": "ret",
"trace": [
    {"step": 1, "address": "0x401000", "instruction": "mov rcx, ", "registers": {...}},
    {"step": 2, "address": "0x401004", "instruction": "add rcx, 5", "registers": {...}}
]
}
```

--------------------------------------------------------------------------------

# 工具清单(57 个)

## 🔧 系统工具(8 个)

| 工具 | 用途 |
|-|-|
| ce_ping | 连接测试,获取服务器健康指标 |
| ce_get_process_info | 获取进程信息 + 刷新符号表【会话第一步】 |
| ce_execute_lua | 执行原始 Lua 代码 |
| ce_get_selected_address | 获取 Memory View 选中地址 |
| ce_get_logs | 获取 Lua 桥接日志 |
| ce_list_processes | 列出运行进程 |
| ce_attach_process | 附加到进程(PID 或名称) |
| ce_auto_assemble | 执行 Auto Assembler 脚本 |

## 💾 内存工具(3 个)

| 工具 | 用途 |
|--|--|
| ce_read_memory | 读取单个内存值 |
| ce_read_memory_batch | 批量读取【性能优化,优先使用】 |
| ce_write_memory | 写入内存值 |

## 🔍 扫描工具(10 个)

| 工具 | 用途 |
|--|--|
| ce_aob_scan | AOB 签名扫描(支持 ?? 通配符) |
| ce_value_scan | 值扫描【手动指针追踪第 2 步】 |
| ce_scan_new | 首次扫描【值查找】 |
| ce_scan_next | 过滤扫描(支持 10 种扫描类型) |
| ce_scan_results | 获取扫描结果(分页) |
| ce_scan_close | 关闭扫描会话 |
| ce_scan_list | 列出所有活动扫描会话 |
| ce_enum_modules | 枚举已加载模块(DLL) |
| ce_get_address_list | 获取 Cheat Table 地址列表 |
| ce_add_address_record | 向 Cheat Table 添加记录 |

## 📍 符号工具(5 个)

| 工具 | 用途 |
|--|--|
| ce_get_address | 解析地址表达式 |
| ce_get_symbol | 获取符号名 + RTTI + 模块信息 |
| ce_get_region_info | 获取内存区域信息 |
| ce_auto_guess | 猜测地址处的值类型 |
| ce_resolve_pointer | 解析指针链(验证) |

## 🐛 调试工具(7 个)

| 工具 | 用途 |
|--|--|
| ce_disassemble | 基本反汇编 |
| ce_get_instruction_info | 获取指令详细信息 |
| ce_set_breakpoint | 设置硬件断点 |
| ce_remove_breakpoint | 移除断点 |
| ce_get_breakpoints | 列出所有活动断点 |
| ce_break_and_get_regs | 单次捕获寄存器 |
| ce_break_and_trace | 逐级执行追踪【最强大】 |

## 📊 分析工具(17 个)

| 工具 | 用途 |
|--|--|
| ce_find_what_accesses | 查找访问地址的代码(F5)【手动指针追踪第 1 步】 |
| ce_find_what_writes | 查找写入地址的代码(F6) |
| ce_analyze_code | 静态代码分析 |
| ce_build_cfg | 构建控制流图(CFG) |
| ce_detect_patterns | 模式识别(switch/加密/反调试) |
| ce_compare_functions | 比较函数相似性 |
| ce_trace_dataflow | 追踪单寄存器数据流 |
| ce_program_slice | 程序切片【高级】 |
| ce_analyze_struct_access | 静态结构体分析 |
| ce_trace_struct_access | 动态结构体追踪 |
| ce_cleanup | 清理所有断点和追踪 |
| ce_find_pointer_path | 自动指针追踪【推荐首选】 |
| ce_find_references | 查找代码引用 |
| ce_find_call_references | 查找函数调用者 |
| ce_find_function_boundaries | 检测函数边界 |
| ce_checksum_memory | 计算 MD5 哈希 |
| ce_generate_signature | 生成 AOB 签名 |

## 🪝 Hook 工具(5 个)

| 工具 | 用途 |
|--|--|
| ce_hook_function | 非阻塞函数 Hook(64 条环形缓冲区) |
| ce_unhook_function | 移除 Hook |
| ce_list_hooks | 列出所有活动 Hook |
| ce_get_hook_log | 获取 Hook 日志 |
| ce_clear_hook_log | 清除 Hook 日志 |

## 🎮 仿真工具(2 个)

| 工具 | 用途 |
|--|--|
| ce_call_function | 调用目标进程函数【危险】 |
| ce_symbolic_trace | 符号执行【不执行实际代码】 |

--------------------------------------------------------------------------------

# 源码结构

```
ce_mcp/
├── ce_mcp_server.py          # Python MCP 服务端(1575 行)
├── ce_mcp_bridge.lua      # CE Lua 桥接(253KB)
├── requirements.txt       # Python 依赖
├── mcp_config.json       # MCP 配置示例
└── README.md             # 完整文档(1055 行)
```

--------------------------------------------------------------------------------

# 适用场景

✅ 游戏逆向工程
✅ 恶意软件分析
✅ CE 脚本自动化生成
✅ 逆向教学演示
✅ AI 辅助逆向

--------------------------------------------------------------------------------

# 下载与使用

## 附件下载

[附件] ce_mcp.zip

包含文件:
- ce_mcp_bridge.lua
- ce_mcp_server.py
- requirements.txt
- mcp_config.json
- README.md

## 系统要求

- Cheat Engine 7.6+
- Python 3.7+
- pywin32 依赖

## 注意事项

⚠️ 本工具为 AI 辅助逆向工程工具,用于教学和研究目的
⚠️ 请遵守当地法律法规,不得用于非法用途
⚠️ AI 需要 MCP 客户端支持

--------------------------------------------------------------------------------

# 技术架构

```
┌─────────────────┐
│      AI       │
└────────┬────────┘
         │ MCP Protocol (JSON-RPC)
┌────────▼────────┐
│ ce_mcp_server.py│ ← Python MCP 服务端
└────────┬────────┘
         │ Named Pipe
┌────────▼─────────────┐
│ce_mcp_bridge.lua   │ ← CE Lua 桥接
└────────┬─────────────┘
         │
┌────────▼─────────┐
│Cheat Engine    │ ← 附加到目标进程
└──────────────────┘
```

--------------------------------------------------------------------------------

# 特色功能详解

## 自动指针追踪(推荐)

工作流:
```
1. ce_find_pointer_path(动态地址)
   ↓
2. 自动尝试多种策略:
   - hybrid(推荐):F5 + value_scan
   - f5:纯断点方法
   - value_scan:纯内存搜索
   ↓
3. 返回:base_address + offsets + CE 表示法
   ↓
4. 验证:ce_resolve_pointer(base, offsets)
```

## 扫描会话管理

完整支持首次扫描 → 过滤扫描 → 获取结果流程:

```
1. ce_scan_new(初始值) → session_id, count
   ↓
2. 游戏中改变值
   ↓
3. ce_scan_next(session_id, 'decreased') → 过滤结果
   ↓
4. 重复 2-3 直到结果很少
   ↓
5. ce_scan_results(session_id) → 获取地址列表
   ↓
6. ce_scan_close(session_id) → 释放资源
```

## 函数 Hook 系统

非阻塞 Hook,64 条环形缓冲区:

```
1. ce_hook_function(地址, "hook_name")
   ↓
2. 让游戏运行(自动捕获参数)
   ↓
3. ce_get_hook_log("hook_name")
   → 64 次调用的完整参数
   ↓
4. ce_unhook_function("hook_name")
   → 清理
```

## 执行追踪

最强大的调试工具:

```
1. ce_break_and_trace(地址, max_steps=100)
   ↓
2. 返回每条指令的完整寄存器状态
   ↓
3. 停止原因:ret / end_address / max_steps / timeout
```

## 模式识别

自动检测常见代码模式:

- switch_tables:跳转表(switch 语句)
- virtual_calls:虚函数调用(vtable)
- string_refs:字符串字面量
- crypto_constants:加密常量(MD5/SHA 等)
- anti_debug:反调试检测
- comparisons:比较指令
- memory_patterns:结构体字段访问模式

--------------------------------------------------------------------------------

# 常见问题

Q:需要学习 Lua 吗?
A:不需要,通过 AI 自然语言即可操作。

Q:支持哪些 AI 模型?
A:支持所有支持 MCP 协议的 AI(如 Claude)。

Q:能自动化游戏修改吗?
A:本工具为逆向分析工具,用于学习和研究。

Q:会封号吗?
A:本工具仅用于离线分析,不涉及联网操作。

--------------------------------------------------------------------------------

# 总结

CE MCP 通过 57 个精心设计的工具,将 Cheat Engine 的强大功能通过 MCP 协议暴露给 AI,
实现了自然语言驱动的逆向工程体验。

无论是初学者学习逆向,还是老手提高效率,都能从中受益。

🎉 享受 AI 辅助逆向后,你会发现逆向从未如此简单!

--------------------------------------------------------------------------------


isure211314 发表于 2026-1-4 18:16

跟不知道怎么用的说一下我试出来的办法。
准备工作:
1.首先要有个AI模型,用来作为输入工具命令CE工作。(我用的cherry studio架模型花自己买的tokens。)
2.py文件地址需要作为mcp_config.json里args的地址,再把json的文本内容复制到AI模型的MCP服务器里,启用。(格式报错问问豆包就行。)
开始:
1.用终端管理员安装pywin32,再用它命令直接调用python运行py,这是第一步,不要乱顺序(不会的问豆包,requirements里的也可以装上,反正几行pip命令)
2.lua文件放到autorun里面,管理员启动CE,绑定要找的游戏句柄,dofile+文件地址,执行一下。(不报错没反应一般就是连上了。不能创建管道就是看没反应后点太多次了,关掉CE重启)
3.AI模型里聊天栏勾选MCP服务器,跟他说调用CE帮你干嘛干嘛(我会让它发测试信息,lua脚本会弹日志或窗口显示信息就是连接上了。)
用后感:
能找基地址,跳一堆代码,最后拿指针偏移一试,找的不对,AI幻觉很严重。
有高手也可以说一下我哪里不对,毕竟我是硬着头皮试出来的办法,看了4页帖子也没人说清楚怎么装。

wsdhgd 发表于 2026-1-3 10:12

厉害厉害

yzswk 发表于 2026-1-3 10:43

好东西,学习了

xiaoyao0418 发表于 2026-1-3 10:47

用AI来辅助逆向分析确实是现在的趋势啊,很不错

kangroo99 发表于 2026-1-3 10:48

嗯,以后就AI写代码,查代码了

镜花水月-陌上桑 发表于 2026-1-3 11:03

牛逼呀呀

Hejutang 发表于 2026-1-3 11:26

感谢分享

shhgzxm 发表于 2026-1-3 11:32

AI能做很多事情的。

A00 发表于 2026-1-3 11:45

以后就AI写代码,查代码了

liu1242 发表于 2026-1-3 11:57

非常牛逼,感谢大佬
页: [1] 2 3 4 5 6 7 8
查看完整版本: Cheat Engine MCP AI 辅助逆向工程桥接工具