Подключите своих любимых AI-агентов напрямую к Cheat Engine через MCP. Автоматизируйте реверс-инжиниринг, сканирование указателей и анализ памяти с помощью естественного языка.
[Демо](https://github.com/user-attachments/assets/a184a006-f569-4b55-858a-ed80a7139035)
# Cheat Engine MCP Bridge
**Позвольте многомиллиардным дата-центрам ИИ анализировать память программ за вас.**
Создавайте моды, тренеры, аудит безопасности, игровых ботов, ускоряйте реверс-инжиниринг или делайте что угодно с любой программой и игрой в разы быстрее.
[](#) [](https://python.org)
> [!NOTE]
> Спасибо всем за звёзды, очень ценю! <3
>
> Особая благодарность всем контрибьюторам!!
>
> [@libangli218](https://github.com/libangli218), [@lauralex](https://github.com/lauralex), [@iamtyroon](https://github.com/iamtyroon), [@HachiroSan](https://github.com/HachiroSan), [@Attacktive](https://github.com/Attacktive)
---
## Проблема
Вы смотрите на гигабайты памяти. Миллионы адресов. Тысячи функций. Поиск *того самого указателя*, *той самой структуры* занимает **дни или недели** ручной работы.
**Что, если бы вы могли просто спросить?**
> *"Найди хук расшифровщика пакетов."*
> *"Найди опкод координат персонажа."*
> *"Найди опкод значений здоровья."*
> *"Найди уникальный AOB-паттерн, чтобы мой тренер был надёжным после обновлений игры."*
**Именно это и делает этот инструмент.**
_– Хватит кликать по hex-дампам, начните общаться с памятью._
---
## Что вы получаете:
| До (вручную) | После (AI-агент + MCP) |
|-----------------|---------------------|
| День 1: Найти адрес пакета | Минута 1: "Найди хук расшифровки RX-пакетов" |
| День 2: Отследить, что пишет по этому адресу | Минута 3: "Сгенерируй уникальную AOB-сигнатуру, чтобы она сохранялась после обновлений" |
| День 3: Найти RX-хук | Минута 6: "Найди опкоды движения" |
| День 4: Документировать структуру | Минута 10: "Создай python-интерпретатор hex в обычный текст" |
| День 5: Обновление игры, начать заново | **Готово.** |
**Теперь ваш ИИ может:**
- Мгновенно читать любую память (целые числа, числа с плавающей точкой, строки, указатели)
- Проходить по цепочкам указателей: `[[base+0x10]+0x20]+0x8` → разрешено за миллисекунды
- Автоматически анализировать структуры с типами полей и значениями
- Определять C++-объекты через RTTI: *"Это объект CPlayer"*
- Дизассемблировать и анализировать функции
- Невидимо отлаживать с помощью аппаратных точек останова + гипервизор Ring -1
- И многое другое!
---
## Как это работает
```mermaid
flowchart TD
AI[AI-агент: Claude/Cursor/Copilot]
AI -->|Протокол MCP - JSON-RPC через stdio| MCP
MCP[mcp_cheatengine.py - Python MCP-сервер]
MCP <-->|Именованный канал - Асинхронно| PIPE
PIPE["\\.\\pipe\\CE_MCP_Bridge_v99"]
PIPE <--> CE
subgraph CE[Cheat Engine - Режим DBVM]
subgraph LUA[ce_mcp_bridge.lua]
WORKER[Рабочий поток - блокирующий ввод/вывод]
MAIN[Главный поток - GUI + API Cheat Engine]
WORKER <-->|Синхронно| MAIN
end
end
MAIN -->|Доступ к памяти| TARGET[Целевой .exe]
```
---
## Установка
```bash
pip install -r MCP_Server/requirements.txt
```
Или вручную:
```bash
pip install mcp pywin32
```
> [!NOTE]
> Режим нативных каналов доступен **только в Windows**, так как используются именованные каналы (`pywin32`). Используйте TCP-ретранслятор, когда MCP-сервер работает вне среды Windows, на которой запущен Cheat Engine, и не может напрямую открыть именованный канал.
---
## Быстрый старт
### 1. Загрузите мост в Cheat Engine
1. Включите DBVM в Cheat Engine, если планируете использовать инструменты DBVM.
2. Откройте Lua-движок или исполнитель скриптов Cheat Engine.
- Рекомендуется: `File` -> `Execute Script` -> откройте `MCP_Server/ce_mcp_bridge.lua` -> `Execute`.
- Если ваша сборка Cheat Engine не показывает `File` -> `Execute Script`, используйте `Table` -> `Show Cheat Table Lua Script`, вставьте строку `dofile(...)` ниже и выполните:
```lua
dofile([[C:\path\to\cheatengine-mcp-bridge\MCP_Server\ce_mcp_bridge.lua]])
```
Ищите сообщение: `[MCP v12.0.0] MCP Server Listening on: CE_MCP_Bridge_v99`
### 2. Настройте MCP-клиент
Добавьте в конфигурацию MCP (например, `mcp_config.json`):
```json
{
"servers": {
"cheatengine": {
"command": "python",
"args": ["C:/path/to/MCP_Server/mcp_cheatengine.py"]
}
}
}
```
Перезапустите IDE, чтобы загрузить конфигурацию MCP-сервера.
Для Codex добавьте блок сервера TOML в `~/.codex/config.toml`:
```toml
[mcp_servers.cheatengine]
command = "python"
args = ['C:\path\to\cheatengine-mcp-bridge\MCP_Server\mcp_cheatengine.py']
```
Используйте одинарные кавычки для пути Windows, чтобы TOML обрабатывал обратные слеши буквально.
#### Транспорт TCP-ретранслятора
TCP-ретранслятор позволяет `mcp_cheatengine.py` общаться с Cheat Engine через TCP-сокет, а не открывать самому Windows-именованный канал. Cheat Engine и Lua-мост по-прежнему работают в Windows, а MCP-сервер может работать где угодно, откуда есть доступ к ретранслятору: другой процесс Windows, виртуальная машина, контейнер, Linux-хост или удалённая машина. Это также можно использовать с WSL без изменения Lua-моста.
1. В Windows загрузите `MCP_Server/ce_mcp_bridge.lua` в Cheat Engine как обычно.
2. В Windows запустите ретранслятор:
```powershell
python C:\path\to\cheatengine-mcp-bridge\MCP_Server\ce_tcp_relay.py --host 127.0.0.1 --port 9876
```
3. В среде, где будет работать MCP-сервер, установите MCP-зависимость без `pywin32`, затем запустите/настройте MCP-сервер с TCP-транспортом:
```bash
python3 -m pip install -r MCP_Server/requirements-tcp.txt
```
```bash
CE_MCP_TRANSPORT=tcp \
CE_MCP_HOST=127.0.0.1 \
CE_MCP_PORT=9876 \
python3 /path/to/cheatengine-mcp-bridge/MCP_Server/mcp_cheatengine.py
```
Для конфигураций MCP-клиента, поддерживающих переменные окружения:
```json
{
"servers": {
"cheatengine": {
"command": "python3",
"args": ["/path/to/cheatengine-mcp-bridge/MCP_Server/mcp_cheatengine.py"],
"env": {
"CE_MCP_TRANSPORT": "tcp",
"CE_MCP_HOST": "127.0.0.1",
"CE_MCP_PORT": "9876"
}
}
}
}
```
Установите `--host` на ретрансляторе и `CE_MCP_HOST` на MCP-сервере на адреса, соответствующие вашей сетевой конфигурации. Держите ретранслятор привязанным только к доверенным интерфейсам, потому что любой, кто имеет к нему доступ, может управлять мостом Cheat Engine.
### 3. Проверьте подключение
Используйте инструмент `ping` для проверки связи:
```json
{"success": true, "version": "12.0.0", "message": "CE MCP Bridge Active"}
```
### 4. Начните задавать вопросы
```
"Какой процесс присоединён?"
"Прочитай 16 байт по базовому адресу"
"Дизассемблируй точку входа"
```
---
## ~180 доступных MCP-инструментов
### Память
| Инструмент | Описание |
|------|-------------|
| `read_memory`, `read_integer`, `read_string` | Чтение любого типа данных |
| `read_pointer_chain` | Проход по пути `[[base+0x10]+0x20]` |
| `scan_all`, `aob_scan` | Поиск значений и байтовых паттернов |
### Анализ
| Инструмент | Описание |
|------|-------------|
| `disassemble`, `analyze_function` | Анализ кода |
| `dissect_structure` | Автоопределение полей и типов |
| `get_rtti_classname` | Определение типов C++-объектов |
| `find_references`, `find_call_references` | Перекрёстные ссылки |
### Отладка
| Инструмент | Описание |
|------|-------------|
| `set_breakpoint`, `set_data_breakpoint` | Аппаратные точки останова |
| `start_dbvm_watch` | Невидимое трассирование Ring -1 |
### Жизненный цикл процессов
| Инструмент | Описание |
|------|-------------|
| `open_process`, `get_process_list` | Присоединение к запущенным процессам или их перечисление |
| `create_process` | Запуск нового процесса под управлением CE |
| `pause_process`, `unpause_process` | Приостановка / возобновление выполнения цели |
### Выделение памяти
| Инструмент | Описание |
|------|-------------|
| `allocate_memory`, `free_memory` | Резервирование и освобождение памяти в целевом процессе |
| `set_memory_protection`, `full_access` | Настройка флагов защиты страниц |
### Внедрение кода
| Инструмент | Описание |
|------|-------------|
| `inject_dll` | Загрузка DLL в целевой процесс |
| `execute_code`, `execute_method` | Удалённый запуск шелл-кода или методов Lua CE |
### Управление символами
| Инструмент | Описание |
|------|-------------|
| `register_symbol`, `get_symbol_info` | Создание и запрос именованных символов |
| `enable_windows_symbols` | Включение разрешения PDB-символов |
### Ассемблирование / Компиляция
| Инструмент | Описание |
|------|-------------|
| `assemble_instruction` | Ассемблирование одной инструкции x86/x64 в байты |
| `compile_c_code` | Компиляция исходного кода C во внедрённый шелл-код |
| `generate_api_hook_script` | Генерация шаблона API-хука автоассемблера CE |
### Окна / Автоматизация GUI
| Инструмент | Описание |
|------|-------------|
| `find_window` | Поиск окна по заголовку или классу |
| `send_window_message` | Отправка сообщений `WM_*` в целевое окно |
### Автоматизация ввода
| Инструмент | Описание |
|------|-------------|
| `get_pixel` | Получение цвета пикселя по координатам экрана |
| `is_key_pressed`, `do_key_press` | Запрос и симуляция ввода с клавиатуры |
### Чит-таблица
| Инструмент | Описание |
|------|-------------|
| `load_table`, `save_table` | Загрузка / сохранение файлов чит-таблиц `.CT` |
| `get_address_list` | Перечисление записей в активной чит-таблице |
### Режим ядра (DBK / DBVM)
| Инструмент | Описание |
|------|-------------|
| `dbk_get_cr3` | Чтение регистра CR3 для целевого процесса |
| `read_process_memory_cr3` | Чтение физической памяти через обход CR3 |
И многие другие в `AI_Context/MCP_Bridge_Command_Reference.md`
---
## Критически важная конфигурация
### Предотвращение BSOD
> [!WARNING]
> **Вы ОБЯЗАТЕЛЬНО должны отключить:** Cheat Engine → Settings → Extra → **"Query memory region routines"**
>
> Включено: вызывает BSOD `CLOCK_WATCHDOG_TIMEOUT` из-за конфликтов с DBVM/античитом при сканировании защищённых страниц.
---
## Устранение неполадок
### Cheat Engine сообщает "too many local variables"
Загружайте мост с диска с помощью `dofile(...)`, а не вставляйте полный скрипт в чит-таблицу. Мост также намеренно объявляет обработчики команд как глобальные функции; это позволяет избежать ограничения Cheat Engine на 200 локальных переменных в одном Lua-чанке при полной компиляции моста.
### MCP-клиент не может подключиться
Проверьте по порядку:
1. Cheat Engine открыт и показывает `MCP Server Listening on: CE_MCP_Bridge_v99`.
2. MCP-клиент был перезапущен после добавления конфигурации сервера.
3. Путь к `mcp_cheatengine.py` в конфигурации существует.
4. `pip install -r MCP_Server/requirements.txt` установил оба пакета: `mcp` и `pywin32`.
5. Запустите MCP-инструмент `ping`. Успешное подключение возвращает `success: true` и версию моста. `process_id: 0` — нормально, пока Cheat Engine не присоединён к целевому процессу.
---
## Переменные окружения
| Переменная | По умолчанию | Назначение |
|----------|---------|---------|
| `CE_MCP_TIMEOUT` | `30` | Тайм-аут (секунды) для каждого вызова MCP-инструмента. |
| `CE_MCP_ALLOW_SHELL` | *не установлена* | Установите в `1`, чтобы включить инструменты `run_command` / `shell_execute`. **Риск выполнения произвольного кода** — по умолчанию не устанавливайте. |
---
## Примеры рабочих процессов
**Поиск значения:**
```
Вы: "Найди gold: 15000" → ИИ находит 47 результатов
Вы: "Gold изменился на 15100" → ИИ фильтрует до 3 адресов
Вы: "Что пишет по первому адресу?" → ИИ устанавливает аппаратную точку останова
Вы: "Дизассемблируй эту функцию" → Полная логика AddGold раскрыта
```
**Понимание структуры:**
```
Вы: "Что находится по адресу [[game.exe+0x1234]+0x10]?"
ИИ: "RTTI: CPlayerInventory"
ИИ: "0x00=vtable, 0x08=itemCount(int), 0x10=itemArray(ptr)..."
```
---
## Структура проекта
```
CLAUDE.md # Руководство для агента Claude Code (этот репозиторий)
README.md # Документация для пользователей
MCP_Server/
├── mcp_cheatengine.py # Python MCP-сервер (FastMCP)
├── ce_mcp_bridge.lua # Lua-мост Cheat Engine
└── test_mcp.py # Набор тестов
AI_Context/
├── BATCH_WORKER_BRIEFING.md # Спецификации задач для параллельных рабочих (переработка v12)
├── MCP_Bridge_Command_Reference.md # Справочник команд MCP
├── CE_LUA_Documentation.md # Полная официальная документация CheatEngine 7.6
└── AI_Guide_MCP_Server_Implementation.md # Полная техническая документация для AI-агента
```
---
## Тестирование
Запуск теста:
```bash
python MCP_Server/test_mcp.py
```
Ожидаемый вывод:
```
✅ Чтение памяти: 6/6 тестов пройдено
✅ Информация о процессе: 4/4 тестов пройдено
✅ Анализ кода: 8/8 тестов пройдено
✅ Точки останова: 4/4 тестов пройдено
✅ Функции DBVM: 3/3 тестов пройдено
✅ Утилиты: 11/11 тестов пройдено
⏭️ Пропущено: 1 тест (generate_signature)
────────────────────────────────────
Всего: 36/37 ПРОЙДЕНО (100% успех)
```
---
## Суть
Вам больше не нужно быть экспертом. Просто задавайте правильные вопросы.
⚠️ ОБРАЗОВАТЕЛЬНОЕ ПРЕДУПРЕЖДЕНИЕ
Этот код предназначен только для образовательных и исследовательских целей. Он создан для демонстрации возможностей Model Context Protocol (MCP) и отладки с помощью LLM. Я не поддерживаю использование этих инструментов для злонамеренного взлома, читерства в многопользовательских играх или нарушения Условий предоставления услуг. Это демонстрация автоматизации программной инженерии.