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 辅助逆向后,你会发现逆向从未如此简单!
--------------------------------------------------------------------------------
跟不知道怎么用的说一下我试出来的办法。
准备工作:
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页帖子也没人说清楚怎么装。 厉害厉害 好东西,学习了 用AI来辅助逆向分析确实是现在的趋势啊,很不错 嗯,以后就AI写代码,查代码了 牛逼呀呀 感谢分享 AI能做很多事情的。 以后就AI写代码,查代码了 非常牛逼,感谢大佬