cheatengine 5.8.9 → 5.8.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -12
- package/README_CN.md +1 -12
- package/ce_mcp_server.py +8 -9
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
English | [中文](README_CN.md)
|
|
2
2
|
|
|
3
|
-
#
|
|
3
|
+
# Cheat Engine MCP - AI-Assisted Reverse Engineering
|
|
4
4
|
|
|
5
5
|
MCP bridge enabling AI assistants to directly control Cheat Engine for game hacking and reverse engineering.
|
|
6
6
|
|
|
@@ -445,17 +445,6 @@ CE_MCP.stats() -- Check bridge status in CE
|
|
|
445
445
|
reloadMcpBridge() -- Reload bridge after code changes
|
|
446
446
|
```
|
|
447
447
|
|
|
448
|
-
## Version History
|
|
449
|
-
|
|
450
|
-
- **v5.8.4**: Connection improvements - Background auto-reconnect thread; Auto-reconnect when CE restarts; `ce_ping` returns diagnostic info on failure; Thread-safe pipe operations
|
|
451
|
-
- **v5.8.3**: Improved tool descriptions for better AI recognition
|
|
452
|
-
- **v5.8.1**: Security improvements - Added optional authentication token; Added hook name validation
|
|
453
|
-
- **v5.8.0**: Added Scan Sessions, `ce_attach_process`, `ce_auto_assemble`
|
|
454
|
-
- **v5.0**: Added `ce_break_and_trace` with multi-step tracing
|
|
455
|
-
- **v4.2**: Added CFG, pattern detection, dataflow analysis
|
|
456
|
-
- **v4.0**: Added function hooking, symbolic trace
|
|
457
|
-
- **v3.0**: Added pointer path finding, structure analysis
|
|
458
|
-
|
|
459
448
|
## References
|
|
460
449
|
|
|
461
450
|
- [CE Wiki](https://wiki.cheatengine.org/)
|
package/README_CN.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[English](README.md) | 中文
|
|
2
2
|
|
|
3
|
-
#
|
|
3
|
+
# Cheat Engine MCP - AI 辅助逆向工程
|
|
4
4
|
|
|
5
5
|
MCP 桥接器,让 AI 助手直接控制 Cheat Engine 进行游戏修改和逆向工程。
|
|
6
6
|
|
|
@@ -445,17 +445,6 @@ CE_MCP.stats() -- 在 CE 中检查桥接状态
|
|
|
445
445
|
reloadMcpBridge() -- 代码更改后重新加载桥接
|
|
446
446
|
```
|
|
447
447
|
|
|
448
|
-
## 版本历史
|
|
449
|
-
|
|
450
|
-
- **v5.8.4**: 连接改进 - 后台自动重连线程; CE 重启后自动重连; `ce_ping` 失败时返回诊断信息; 线程安全管道操作
|
|
451
|
-
- **v5.8.3**: 改进工具描述以便 AI 更好识别
|
|
452
|
-
- **v5.8.1**: 安全改进 - 添加可选认证令牌; 添加 Hook 名称验证
|
|
453
|
-
- **v5.8.0**: 添加扫描会话、`ce_attach_process`、`ce_auto_assemble`
|
|
454
|
-
- **v5.0**: 添加 `ce_break_and_trace` 多步跟踪
|
|
455
|
-
- **v4.2**: 添加 CFG、模式检测、数据流分析
|
|
456
|
-
- **v4.0**: 添加函数 Hook、符号跟踪
|
|
457
|
-
- **v3.0**: 添加指针路径查找、结构分析
|
|
458
|
-
|
|
459
448
|
## 参考
|
|
460
449
|
|
|
461
450
|
- [CE Wiki](https://wiki.cheatengine.org/)
|
package/ce_mcp_server.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
# -*- coding: utf-8 -*-
|
|
3
|
-
"""
|
|
3
|
+
"""Cheat Engine MCP Server - Named pipe bridge to Cheat Engine"""
|
|
4
4
|
|
|
5
5
|
import concurrent.futures
|
|
6
6
|
import io
|
|
@@ -274,7 +274,6 @@ class MetricsCollector:
|
|
|
274
274
|
|
|
275
275
|
# ============ Config ============
|
|
276
276
|
class Config:
|
|
277
|
-
VERSION = "5.8.4"
|
|
278
277
|
PIPE_NAME = r"\\.\pipe\{}".format(
|
|
279
278
|
os.environ.get("CE_MCP_PIPE_NAME", "ce_mcp_bridge")
|
|
280
279
|
)
|
|
@@ -296,7 +295,7 @@ class Logger:
|
|
|
296
295
|
def log(msg: str, level: str = "INFO"):
|
|
297
296
|
if level == "DEBUG" and not Config.DEBUG:
|
|
298
297
|
return
|
|
299
|
-
sys.stderr.write(f"[
|
|
298
|
+
sys.stderr.write(f"[CheatEngine-MCP-{level}] {msg}\n")
|
|
300
299
|
sys.stderr.flush()
|
|
301
300
|
|
|
302
301
|
@staticmethod
|
|
@@ -447,7 +446,7 @@ class PipeClient:
|
|
|
447
446
|
"""Get user-friendly error message based on Windows error code"""
|
|
448
447
|
messages = {
|
|
449
448
|
winerror.ERROR_FILE_NOT_FOUND: (
|
|
450
|
-
"
|
|
449
|
+
"Cheat Engine MCP Bridge not running. "
|
|
451
450
|
"Load 'ce_mcp_bridge.lua' in CE (Table -> Show Cheat Table Lua Script -> Execute)"
|
|
452
451
|
),
|
|
453
452
|
winerror.ERROR_PIPE_BUSY: "Pipe busy - another client may be connected",
|
|
@@ -724,7 +723,7 @@ class ToolRegistry:
|
|
|
724
723
|
self._register(
|
|
725
724
|
Tool(
|
|
726
725
|
"ce_get_logs",
|
|
727
|
-
"Get log entries from the
|
|
726
|
+
"Get log entries from the Cheat Engine MCP Bridge Lua side. "
|
|
728
727
|
"Returns: {entries: [{timestamp, level, category, message, data}], count}. "
|
|
729
728
|
"Useful for debugging and monitoring bridge operations.",
|
|
730
729
|
"get_logs",
|
|
@@ -2197,7 +2196,7 @@ class CEMCPServer:
|
|
|
2197
2196
|
"1. Open Cheat Engine",
|
|
2198
2197
|
"2. Table -> Show Cheat Table Lua Script",
|
|
2199
2198
|
"3. Paste ce_mcp_bridge.lua content and Execute",
|
|
2200
|
-
"4. Look for '[
|
|
2199
|
+
"4. Look for '[CheatEngine-MCP] Bridge started' message",
|
|
2201
2200
|
]
|
|
2202
2201
|
)
|
|
2203
2202
|
elif e.winerror == winerror.ERROR_PIPE_BUSY:
|
|
@@ -2357,9 +2356,9 @@ class CEMCPServer:
|
|
|
2357
2356
|
"result": {
|
|
2358
2357
|
"protocolVersion": "2024-11-05",
|
|
2359
2358
|
"capabilities": {"tools": {}},
|
|
2360
|
-
"serverInfo": {"name": "
|
|
2359
|
+
"serverInfo": {"name": "cheatengine-mcp-bridge"},
|
|
2361
2360
|
"instructions": (
|
|
2362
|
-
"#
|
|
2361
|
+
"# Cheat Engine MCP - AI Usage Guide\n\n"
|
|
2363
2362
|
"## Tool Selection Decision Tree\n\n"
|
|
2364
2363
|
"### Q: Do I know the address?\n"
|
|
2365
2364
|
"- NO, but can observe value changes -> ce_scan_new workflow (value hunting)\n"
|
|
@@ -2469,7 +2468,7 @@ class CEMCPServer:
|
|
|
2469
2468
|
|
|
2470
2469
|
def run(self):
|
|
2471
2470
|
"""Main server loop"""
|
|
2472
|
-
log.info(f"
|
|
2471
|
+
log.info(f"Cheat Engine MCP Bridge Started. Waiting for input...")
|
|
2473
2472
|
log.info(f"Python version: {sys.version}")
|
|
2474
2473
|
|
|
2475
2474
|
try:
|