
Подключайте Cursor, Copilot и Claude AI напрямую к Cheat Engine через MCP. Автоматизируйте реверс-инжиниринг, сканирование указателей и анализ памяти с помощью естественного языка.
Позвольте многомиллиардным дата-центрам ИИ анализировать память программ за вас.
Создавайте моды, тренеры, аудит безопасности, игровых ботов, ускоряйте реверс-инжиниринг или делайте что угодно с любой программой и игрой в разы быстрее.
[!NOTE] Спасибо всем за звёзды, очень ценю! <3
Особая благодарность всем контрибьюторам!!
@libangli218, @lauralex, @iamtyroon, @HachiroSan, @Attacktive
Вы смотрите на гигабайты памяти. Миллионы адресов. Тысячи функций. Поиск того самого указателя, той самой структуры занимает дни или недели ручной работы.
Что, если бы вы могли просто спросить?
"Найди хук расшифровщика пакетов." "Найди опкод координат персонажа." "Найди опкод значений здоровья." "Найди уникальный AOB-паттерн, чтобы мой тренер был надёжным после обновлений игры."
Именно это и делает этот инструмент.
– Хватит кликать по hex-дампам, начните общаться с памятью.
Теперь ваш ИИ может:
[[base+0x10]+0x20]+0x8 → разрешено за миллисекунды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]
pip install -r MCP_Server/requirements.txt
Или вручную:
pip install mcp pywin32
[!NOTE] Режим нативных каналов доступен только в Windows, так как используются именованные каналы (
pywin32). Используйте TCP-ретранслятор, когда MCP-сервер работает вне среды Windows, на которой запущен Cheat Engine, и не может напрямую открыть именованный канал.
File -> Execute Script -> откройте MCP_Server/ce_mcp_bridge.lua -> Execute.File -> Execute Script, используйте Table -> Show Cheat Table Lua Script, вставьте строку dofile(...) ниже и выполните: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
Добавьте в конфигурацию MCP (например, mcp_config.json):
{
"servers": {
"cheatengine": {
"command": "python",
"args": ["C:/path/to/MCP_Server/mcp_cheatengine.py"]
}
}
}
Перезапустите IDE, чтобы загрузить конфигурацию MCP-сервера.
Для Codex добавьте блок сервера TOML в ~/.codex/config.toml:
[mcp_servers.cheatengine]
command = "python"
args = ['C:\path\to\cheatengine-mcp-bridge\MCP_Server\mcp_cheatengine.py']
Используйте одинарные кавычки для пути Windows, чтобы TOML обрабатывал обратные слеши буквально.
TCP-ретранслятор позволяет mcp_cheatengine.py общаться с Cheat Engine через TCP-сокет, а не открывать самому Windows-именованный канал. Cheat Engine и Lua-мост по-прежнему работают в Windows, а MCP-сервер может работать где угодно, откуда есть доступ к ретранслятору: другой процесс Windows, виртуальная машина, контейнер, Linux-хост или удалённая машина. Это также можно использовать с WSL без изменения Lua-моста.
MCP_Server/ce_mcp_bridge.lua в Cheat Engine как обычно.python C:\path\to\cheatengine-mcp-bridge\MCP_Server\ce_tcp_relay.py --host 127.0.0.1 --port 9876
pywin32, затем запустите/настройте MCP-сервер с TCP-транспортом:python3 -m pip install -r MCP_Server/requirements-tcp.txt
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-клиента, поддерживающих переменные окружения:
{
"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.
Используйте инструмент ping для проверки связи:
{"success": true, "version": "12.0.0", "message": "CE MCP Bridge Active"}
"Какой процесс присоединён?"
"Прочитай 16 байт по базовому адресу"
"Дизассемблируй точку входа"
| Инструмент |
|---|
| Инструмент | Описание |
|---|---|
set_breakpoint, set_data_breakpoint | Аппаратные точки останова |
start_dbvm_watch | Невидимое трассирование Ring -1 |
| Инструмент | Описание |
|---|---|
open_process, get_process_list | Присоединение к запущенным процессам или их перечисление |
| Инструмент | Описание |
|---|---|
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 |
| Инструмент | Описание |
|---|---|
find_window | Поиск окна по заголовку или классу |
send_window_message | Отправка сообщений WM_* в целевое окно |
| Инструмент | Описание |
|---|---|
get_pixel | Получение цвета пикселя по координатам экрана |
is_key_pressed, do_key_press | Запрос и симуляция ввода с клавиатуры |
| Инструмент | Описание |
|---|---|
load_table, save_table | Загрузка / сохранение файлов чит-таблиц .CT |
get_address_list | Перечисление записей в активной чит-таблице |
| Инструмент | Описание |
|---|---|
dbk_get_cr3 | Чтение регистра CR3 для целевого процесса |
read_process_memory_cr3 | Чтение физической памяти через обход CR3 |
И многие другие в AI_Context/MCP_Bridge_Command_Reference.md
[!WARNING] Вы ОБЯЗАТЕЛЬНО должны отключить: Cheat Engine → Settings → Extra → "Query memory region routines"
Включено: вызывает BSOD
CLOCK_WATCHDOG_TIMEOUTиз-за конфликтов с DBVM/античитом при сканировании защищённых страниц.
Загружайте мост с диска с помощью dofile(...), а не вставляйте полный скрипт в чит-таблицу. Мост также намеренно объявляет обработчики команд как глобальные функции; это позволяет избежать ограничения Cheat Engine на 200 локальных переменных в одном Lua-чанке при полной компиляции моста.
Проверьте по порядку:
MCP Server Listening on: CE_MCP_Bridge_v99.mcp_cheatengine.py в конфигурации существует.pip install -r MCP_Server/requirements.txt установил оба пакета: mcp и pywin32.ping. Успешное подключение возвращает success: true и версию моста. process_id: 0 — нормально, пока Cheat Engine не присоединён к целевому процессу.Поиск значения:
Вы: "Найди 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-агента
Запуск теста:
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. Я не поддерживаю использование этих инструментов для злонамеренного взлома, читерства в многопользовательских играх или нарушения Условий предоставления услуг. Это демонстрация автоматизации программной инженерии.
| До (вручную) | После (AI-агент + MCP) |
|---|
| День 1: Найти адрес пакета | Минута 1: "Найди хук расшифровки RX-пакетов" |
| День 2: Отследить, что пишет по этому адресу | Минута 3: "Сгенерируй уникальную AOB-сигнатуру, чтобы она сохранялась после обновлений" |
| День 3: Найти RX-хук | Минута 6: "Найди опкоды движения" |
| День 4: Документировать структуру | Минута 10: "Создай python-интерпретатор hex в обычный текст" |
| День 5: Обновление игры, начать заново | Готово. |
| Описание |
|---|
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 | Перекрёстные ссылки |
create_process| Запуск нового процесса под управлением CE |
pause_process, unpause_process | Приостановка / возобновление выполнения цели |
| Переменная | По умолчанию | Назначение |
|---|
CE_MCP_TIMEOUT | 30 | Тайм-аут (секунды) для каждого вызова MCP-инструмента. |
CE_MCP_ALLOW_SHELL | не установлена | Установите в 1, чтобы включить инструменты run_command / shell_execute. Риск выполнения произвольного кода — по умолчанию не устанавливайте. |