
Conecte Cursor, Copilot e Claude AI diretamente ao Cheat Engine via MCP. Automatize engenharia reversa, varredura de ponteiros e análise de memória usando linguagem natural.
Deixe datacenters de IA de bilhões de dólares analisarem a memória do programa para você.
Crie mods, trainers, auditorias de segurança, bots de jogos, acelere engenharia reversa, ou faça qualquer outra coisa com qualquer programa e jogo em uma fração do tempo.
[!NOTE] Obrigado a todos pelas estrelas, muito apreciado! <3
Um agradecimento especial a todos os contribuidores!!
@libangli218, @lauralex, @iamtyroon, @HachiroSan, @Attacktive
Você está encarando gigabytes de memória. Milhões de endereços. Milhares de funções. Encontrar aquele ponteiro, aquela estrutura leva dias ou semanas de trabalho manual.
E se você pudesse simplesmente perguntar?
"Encontre o hook do descriptografador de pacotes."
"Encontre o OPcode das coordenadas do personagem."
"Encontre o OPcode dos valores de vida."
"Encontre o padrão AOB único para tornar seu trainer confiável após atualizações do jogo."
É exatamente isso que isso faz.
- Pare de clicar em dumps hexadecimais e comece a ter conversas com a memória.
Sua IA agora pode:
[[base+0x10]+0x20]+0x8 → resolvido em msflowchart TD
AI[AI Agent: Claude/Cursor/Copilot]
AI -->|MCP Protocol - JSON-RPC over stdio| MCP
MCP[mcp_cheatengine.py - Python MCP Server]
MCP <-->|Named Pipe - Async| PIPE
PIPE["\\.\\pipe\\CE_MCP_Bridge_v99"]
PIPE <--> CE
subgraph CE[Cheat Engine - DBVM Mode]
subgraph LUA[ce_mcp_bridge.lua]
WORKER[Worker Thread - Blocking I/O]
MAIN[Main Thread - GUI + CE API]
WORKER <-->|Sync| MAIN
end
end
MAIN -->|Memory Access| TARGET[Target .exe]
pip install -r MCP_Server/requirements.txt
Ou manualmente:
pip install mcp pywin32
[!NOTE] O modo de pipe nativo é apenas para Windows porque usa pipes nomeados (
pywin32). Use o transporte de relé TCP quando o servidor MCP for executado fora do ambiente Windows que hospeda o Cheat Engine e não puder abrir o pipe nomeado diretamente.
File -> Execute Script -> abra MCP_Server/ce_mcp_bridge.lua -> Execute.File -> Execute Script, use Table -> Show Cheat Table Lua Script, cole a linha dofile(...) abaixo e execute:dofile([[C:\path\to\cheatengine-mcp-bridge\MCP_Server\ce_mcp_bridge.lua]])
Procure por: [MCP v12.0.0] MCP Server Listening on: CE_MCP_Bridge_v99
Adicione à sua configuração MCP (ex.: mcp_config.json):
{
"servers": {
"cheatengine": {
"command": "python",
"args": ["C:/path/to/MCP_Server/mcp_cheatengine.py"]
}
}
}
Reinicie a IDE para carregar a configuração do servidor MCP.
Para Codex, adicione um bloco de servidor TOML em ~/.codex/config.toml:
[mcp_servers.cheatengine]
command = "python"
args = ['C:\path\to\cheatengine-mcp-bridge\MCP_Server\mcp_cheatengine.py']
Use aspas simples para o caminho do Windows para que o TOML trate as barras invertidas literalmente.
O relé TCP permite que mcp_cheatengine.py converse com o Cheat Engine através de um socket TCP em vez de abrir o pipe nomeado do Windows diretamente. O Cheat Engine e a bridge Lua ainda são executados no Windows, enquanto o servidor MCP pode ser executado em qualquer lugar que consiga alcançar o relé: outro processo Windows, uma VM, um container, um host Linux ou uma máquina remota. Isso também pode ser usado com WSL sem modificar a bridge Lua.
MCP_Server/ce_mcp_bridge.lua no Cheat Engine como de costume.python C:\path\to\cheatengine-mcp-bridge\MCP_Server\ce_tcp_relay.py --host 127.0.0.1 --port 9876
pywin32 e então execute/configure o servidor MCP com transporte 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
Para configurações de cliente MCP que suportam variáveis de ambiente:
{
"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"
}
}
}
}
Defina --host no relé e CE_MCP_HOST no servidor MCP para endereços que correspondam à sua configuração de rede. Mantenha o relé vinculado apenas a interfaces confiáveis, porque qualquer um que possa alcançá-lo pode controlar a bridge do Cheat Engine.
Use a ferramenta ping para verificar a conectividade:
{"success": true, "version": "12.0.0", "message": "CE MCP Bridge Active"}
"Qual processo está anexado?"
"Leia 16 bytes no endereço base"
"Desmonte o ponto de entrada"
| Ferramenta |
|---|
| Ferramenta | Descrição |
|---|---|
set_breakpoint, set_data_breakpoint | Breakpoints de hardware |
start_dbvm_watch | Rastreamento invisível Ring -1 |
| Ferramenta | Descrição |
|---|---|
open_process, get_process_list | Anexar ou enumerar processos em execução |
create_process |
| Ferramenta | Descrição |
|---|---|
allocate_memory, free_memory | Reservar e liberar memória no alvo |
set_memory_protection, full_access | Ajustar flags de proteção de página |
| Ferramenta | Descrição |
|---|---|
inject_dll | Carregar uma DLL no processo alvo |
execute_code, execute_method | Executar shellcode ou métodos Lua do CE remotamente |
| Ferramenta | Descrição |
|---|---|
register_symbol, get_symbol_info | Criar e consultar símbolos nomeados |
enable_windows_symbols | Habilitar resolução de símbolos PDB |
| Ferramenta | Descrição |
|---|---|
assemble_instruction | Montar uma única instrução x86/x64 em bytes |
compile_c_code | Compilar código-fonte C em shellcode injetado |
generate_api_hook_script | Gerar um template de hook de API do auto-assembler do CE |
| Ferramenta | Descrição |
|---|---|
find_window | Localizar uma janela por título ou classe |
send_window_message | Enviar mensagens WM_* para uma janela alvo |
| Ferramenta | Descrição |
|---|---|
get_pixel | Amostrar a cor de um pixel em coordenadas da tela |
is_key_pressed, do_key_press | Consultar e simular entrada do teclado |
| Ferramenta | Descrição |
|---|---|
load_table, save_table | Carregar / salvar arquivos de tabela de cheats .CT |
get_address_list | Enumerar entradas na tabela de cheats ativa |
| Ferramenta | Descrição |
|---|---|
dbk_get_cr3 | Ler o registrador CR3 para o processo alvo |
read_process_memory_cr3 | Ler memória física via bypass CR3 |
E muitas mais em AI_Context/MCP_Bridge_Command_Reference.md
[!CAUTION] Você DEVE desabilitar: Cheat Engine → Configurações → Extra → "Query memory region routines"
Habilitado: Causa BSODs
CLOCK_WATCHDOG_TIMEOUTdevido a conflitos com DBVM/Anti-Cheat ao escanear páginas protegidas.
Carregue a bridge a partir do disco com dofile(...) em vez de colar o script completo em um script de tabela de cheats. A bridge também declara manipuladores de comando como funções globais intencionalmente; isso evita o limite de chunks Lua do Cheat Engine de 200 variáveis locais quando a bridge completa é compilada de uma só vez.
Verifique nesta ordem:
MCP Server Listening on: CE_MCP_Bridge_v99.mcp_cheatengine.py existe.pip install -r MCP_Server/requirements.txt instalou tanto mcp quanto pywin32.ping do MCP. Uma conexão bem-sucedida retorna success: true e a versão da bridge. process_id: 0 é normal até que o Cheat Engine seja anexado a um processo alvo.Encontrando um valor:
Você: "Escaneie por ouro: 15000" → IA encontra 47 resultados
Você: "Ouro mudou para 15100" → IA filtra para 3 endereços
Você: "O que escreve no primeiro?" → IA define BP de hardware
Você: "Desmonte essa função" → Lógica completa de AddGold revelada
Entendendo uma estrutura:
Você: "O que tem em [[game.exe+0x1234]+0x10]?"
IA: "RTTI: CPlayerInventory"
IA: "0x00=vtable, 0x08=itemCount(int), 0x10=itemArray(ptr)..."
CLAUDE.md # Orientação do agente Claude Code (este repositório)
README.md # Documentação para o usuário
MCP_Server/
├── mcp_cheatengine.py # Servidor MCP Python (FastMCP)
├── ce_mcp_bridge.lua # Bridge Lua do Cheat Engine
└── test_mcp.py # Conjunto de testes
AI_Context/
├── BATCH_WORKER_BRIEFING.md # Especificações de tarefas para trabalhadores paralelos (revisão v12)
├── MCP_Bridge_Command_Reference.md # Referência de comandos MCP
├── CE_LUA_Documentation.md # Documentação oficial completa do CheatEngine 7.6
└── AI_Guide_MCP_Server_Implementation.md # Documentação técnica completa para o agente de IA
Executando o teste:
python MCP_Server/test_mcp.py
Saída esperada:
✅ Memory Reading: 6/6 tests passed
✅ Process Info: 4/4 tests passed
✅ Code Analysis: 8/8 tests passed
✅ Breakpoints: 4/4 tests passed
✅ DBVM Functions: 3/3 tests passed
✅ Utility Commands: 11/11 tests passed
⏭️ Skipped: 1 test (generate_signature)
────────────────────────────────────
Total: 36/37 PASSED (100% success)
Você não precisa mais ser um especialista. Apenas faça as perguntas certas.
⚠️ AVISO EDUCACIONAL
Este código é apenas para fins educacionais e de pesquisa. Ele foi criado para demonstrar as capacidades do Model Context Protocol (MCP) e da depuração baseada em LLM. Não endosso o uso dessas ferramentas para hacking malicioso, trapaça em jogos multiplayer ou violação de Termos de Serviço. Esta é uma demonstração de automação de engenharia de software.
| Antes (Manual) | Depois (Agente de IA + MCP) |
|---|
| Dia 1: Encontrar endereço do pacote | Minuto 1: "Encontrar hook de descriptografia de pacote RX" |
| Dia 2: Rastrear o que escreve nele | Minuto 3: "Gerar assinatura AOB única para torná-la persistente a atualizações" |
| Dia 3: Encontrar hook RX | Minuto 6: "Encontrar OPcodes de movimento" |
| Dia 4: Documentar estrutura | Minuto 10: "Criar interpretador Python de hex para texto simples" |
| Dia 5: Atualizações do jogo, começar de novo | Pronto. |
| Descrição |
|---|
read_memory, read_integer, read_string | Ler qualquer tipo de dado |
read_pointer_chain | Seguir caminhos [[base+0x10]+0x20] |
scan_all, aob_scan | Encontrar valores e padrões de bytes |
| Ferramenta | Descrição |
|---|
disassemble, analyze_function | Análise de código |
dissect_structure | Detectar automaticamente campos e tipos |
get_rtti_classname | Identificar tipos de objetos C++ |
find_references, find_call_references | Referências cruzadas |
| Iniciar um novo processo sob controle do CE |
pause_process, unpause_process | Suspender / retomar execução do alvo |
| Variável | Padrão | Finalidade |
|---|
CE_MCP_TIMEOUT | 30 | Timeout (segundos) para cada chamada de ferramenta MCP. |
CE_MCP_ALLOW_SHELL | não definido | Defina como 1 para habilitar ferramentas run_command / shell_execute. Risco de execução arbitrária de código — deixe não definido por padrão. |