Connectez directement Cursor, Copilot et Claude AI à Cheat Engine via MCP. Automatisez la rétro-ingénierie, l'analyse de pointeurs et l'analyse mémoire en utilisant le langage naturel.
Laissez les centres de données IA de plusieurs milliards de dollars analyser la mémoire du programme pour vous.
Créez des mods, des trainers, des audits de sécurité, des bots de jeu, accélérez la rétro-ingénierie, ou faites tout autre chose avec n'importe quel programme et jeu en une fraction de temps.
[!NOTE] Merci à tous pour les étoiles, c'est très apprécié ! <3
Un grand merci tout spécialement à tous les contributeurs !!
@libangli218, @lauralex, @iamtyroon, @HachiroSan, @Attacktive
Vous fixez des gigaoctets de mémoire. Des millions d'adresses. Des milliers de fonctions. Trouver ce pointeur, cette structure demande des jours ou des semaines de travail manuel.
Et si vous pouviez simplement demander ?
"Trouver le hook de déchiffrement de paquets."
C'est exactement ce que ça fait.
- Arrêtez de cliquer dans des hex dumps et commencez à converser avec la mémoire.
| Avant (Manuel) | Après (Agent IA + MCP) |
|---|---|
| Jour 1 : Trouver l'adresse du paquet | Minute 1 : "Trouver le hook de déchiffrement de paquets RX" |
| Jour 2 : Tracer ce qui y écrit | Minute 3 : "Générer une signature AOB unique pour le rendre persistant après mise à jour" |
| Jour 3 : Trouver le hook RX | Minute 6 : "Trouver les OPcodes de mouvement" |
| Jour 4 : Documenter la structure | Minute 10 : "Créer un interpréteur Python de l'hexadécimal en texte brut" |
| Jour 5 : Mise à jour du jeu, recommencer | Fini. |
Votre IA peut maintenant :
[[base+0x10]+0x20]+0x8 → résolu en 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 manuellement :
pip install mcp pywin32
[!NOTE] Le mode pipe natif est Windows uniquement car il utilise des Named Pipes (
pywin32). Utilisez le transport par relais TCP lorsque le serveur MCP s'exécute en dehors de l'environnement Windows qui héberge Cheat Engine et ne peut pas ouvrir le pipe nommé directement.
Fichier -> Exécuter un script -> ouvrir MCP_Server/ce_mcp_bridge.lua -> Exécuter.Fichier -> Exécuter un script, utilisez Table -> Afficher le script Lua de la cheat table, collez la ligne dofile(...) ci-dessous, et exécutez-la :dofile([[C:\path\to\cheatengine-mcp-bridge\MCP_Server\ce_mcp_bridge.lua]])
Recherchez : [MCP v12.0.0] MCP Server Listening on: CE_MCP_Bridge_v99
Ajoutez à votre configuration MCP (par exemple, mcp_config.json) :
{
"servers": {
"cheatengine": {
"command": "python",
"args": ["C:/path/to/MCP_Server/mcp_cheatengine.py"]
}
}
}
Redémarrez l'IDE pour charger la configuration du serveur MCP.
Pour Codex, ajoutez un bloc de serveur TOML dans ~/.codex/config.toml :
[mcp_servers.cheatengine]
command = "python"
args = ['C:\path\to\cheatengine-mcp-bridge\MCP_Server\mcp_cheatengine.py']
Utilisez des guillemets simples pour le chemin Windows afin que TOML traite les antislashes littéralement.
Le relais TCP permet à mcp_cheatengine.py de communiquer avec Cheat Engine via une socket TCP au lieu d'ouvrir directement le pipe nommé Windows. Cheat Engine et le pont Lua restent sous Windows, tandis que le serveur MCP peut s'exécuter partout où il peut atteindre le relais : un autre processus Windows, une VM, un conteneur, un hôte Linux ou une machine distante. Cela peut également être utilisé avec WSL sans modifier le pont Lua.
MCP_Server/ce_mcp_bridge.lua dans Cheat Engine comme d'habitude.python C:\path\to\cheatengine-mcp-bridge\MCP_Server\ce_tcp_relay.py --host 127.0.0.1 --port 9876
pywin32, puis exécutez/configurez le serveur MCP avec le transport 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
Pour les configurations client MCP qui prennent en charge les variables d'environnement :
{
"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"
}
}
}
}
Définissez --host sur le relais et CE_MCP_HOST sur le serveur MCP pour correspondre à votre configuration réseau. Liez le relais uniquement aux interfaces de confiance, car quiconque peut l'atteindre peut contrôler le pont Cheat Engine.
Utilisez l'outil ping pour vérifier la connectivité :
{"success": true, "version": "12.0.0", "message": "CE MCP Bridge Active"}
"Quel processus est attaché ?"
"Lire 16 octets à l'adresse de base"
"Désassembler le point d'entrée"
| Outil | Description |
|---|---|
read_memory, read_integer, read_string | Lire n'importe quel type de données |
read_pointer_chain | Suivre les chemins [[base+0x10]+0x20] |
scan_all, aob_scan | Trouver des valeurs et des motifs d'octets |
| Outil | Description |
|---|---|
disassemble, analyze_function | Analyse de code |
dissect_structure | Détection automatique des champs et des types |
get_rtti_classname | Identifier les types d'objets C++ |
find_references, find_call_references | Références croisées |
| Outil | Description |
|---|---|
set_breakpoint, set_data_breakpoint | Points d'arrêt matériels |
start_dbvm_watch | Traçage invisible Ring -1 |
| Outil | Description |
|---|---|
open_process, get_process_list | S'attacher à ou énumérer les processus en cours d'exécution |
create_process | Lancer un nouveau processus sous le contrôle de CE |
pause_process, unpause_process | Suspendre / reprendre l'exécution de la cible |
| Outil | Description |
|---|---|
allocate_memory, free_memory | Réserver et libérer de la mémoire dans la cible |
set_memory_protection, full_access | Ajuster les drapeaux de protection des pages |
| Outil | Description |
|---|---|
inject_dll | Charger une DLL dans le processus cible |
execute_code, execute_method | Exécuter du shellcode ou des méthodes Lua CE à distance |
| Outil | Description |
|---|---|
register_symbol, get_symbol_info | Créer et interroger des symboles nommés |
enable_windows_symbols | Activer la résolution des symboles PDB |
| Outil | Description |
|---|---|
assemble_instruction | Assembler une instruction x86/x64 unique en octets |
compile_c_code | Compiler du code source C en shellcode injecté |
generate_api_hook_script | Générer un modèle de hook API auto-assembleur CE |
| Outil | Description |
|---|---|
find_window | Localiser une fenêtre par titre ou classe |
send_window_message | Envoyer des messages WM_* à une fenêtre cible |
| Outil | Description |
|---|---|
get_pixel | Échantillonner la couleur d'un pixel aux coordonnées de l'écran |
is_key_pressed, do_key_press | Interroger et simuler une saisie clavier |
| Outil | Description |
|---|---|
load_table, save_table | Charger / sauvegarder des fichiers de cheat table .CT |
get_address_list | Énumérer les entrées de la cheat table active |
| Outil | Description |
|---|---|
dbk_get_cr3 | Lire le registre CR3 pour le processus cible |
read_process_memory_cr3 | Lire la mémoire physique via le contournement CR3 |
Et bien d'autres dans AI_Context/MCP_Bridge_Command_Reference.md
[!CAUTION] Vous DEVEZ désactiver : Cheat Engine → Paramètres → Extra → "Query memory region routines"
Activé : Provoque des BSOD
CLOCK_WATCHDOG_TIMEOUTen raison de conflits avec DBVM/Anti-Cheat lors du scan de pages protégées.
Chargez le pont depuis le disque avec dofile(...) au lieu de coller le script complet dans un script de cheat table. Le pont déclare également intentionnellement les gestionnaires de commandes comme des fonctions globales ; cela évite la limite de 200 variables locales des blocs Lua de Cheat Engine lorsque le pont complet est compilé d'un coup.
Vérifiez dans l'ordre :
MCP Server Listening on: CE_MCP_Bridge_v99.mcp_cheatengine.py existe.pip install -r MCP_Server/requirements.txt a installé à la fois mcp et pywin32.ping MCP. Une connexion réussie renvoie success: true et la version du pont. process_id: 0 est normal tant que Cheat Engine n'est pas attaché à un processus cible.| Variable | Défaut | Objectif |
|---|---|---|
CE_MCP_TIMEOUT | 30 | Délai d'attente (en secondes) pour chaque appel d'outil MCP. |
CE_MCP_ALLOW_SHELL | non défini | Définir à 1 pour activer les outils run_command / shell_execute. Risque d'exécution de code arbitraire — laissez non défini par défaut. |
Trouver une valeur :
Vous : "Rechercher or : 15000" → IA trouve 47 résultats
Vous : "Or changé en 15100" → IA filtre sur 3 adresses
Vous : "Qu'est-ce qui écrit sur la première ?" → IA pose un point d'arrêt matériel
Vous : "Désassembler cette fonction" → Logique complète d'AddGold révélée
Comprendre une structure :
Vous : "Qu'y a-t-il à [[game.exe+0x1234]+0x10] ?"
IA : "RTTI : CPlayerInventory"
IA : "0x00=vtable, 0x08=itemCount(int), 0x10=itemArray(ptr)..."
CLAUDE.md # Guide de l'agent Claude Code (ce dépôt)
README.md # Documentation utilisateur
MCP_Server/
├── mcp_cheatengine.py # Serveur MCP Python (FastMCP)
├── ce_mcp_bridge.lua # Pont Lua Cheat Engine
└── test_mcp.py # Suite de tests
AI_Context/
├── BATCH_WORKER_BRIEFING.md # Spécifications des tâches pour travailleurs parallèles (refonte v12)
├── MCP_Bridge_Command_Reference.md # Référence des commandes MCP
├── CE_LUA_Documentation.md # Documentation officielle complète de CheatEngine 7.6
└── AI_Guide_MCP_Server_Implementation.md # Documentation technique complète pour l'agent IA
Exécution du test :
python MCP_Server/test_mcp.py
Sortie attendue :
✅ Lecture mémoire : 6/6 tests réussis
✅ Informations processus : 4/4 tests réussis
✅ Analyse de code : 8/8 tests réussis
✅ Points d'arrêt : 4/4 tests réussis
✅ Fonctions DBVM : 3/3 tests réussis
✅ Commandes utilitaires : 11/11 tests réussis
⏭️ Ignoré : 1 test (generate_signature)
────────────────────────────────────
Total : 36/37 RÉUSSIS (100% de succès)
Vous n'avez plus besoin d'être un expert. Posez simplement les bonnes questions.
⚠️ AVERTISSEMENT ÉDUCATIF
Ce code est uniquement à des fins éducatives et de recherche. Il est créé pour montrer les capacités du Model Context Protocol (MCP) et du débogage basé sur LLM. Je ne cautionne pas l'utilisation de ces outils pour le piratage malveillant, la triche dans les jeux multijoueurs ou la violation des conditions d'utilisation. Ceci est une démonstration d'automatisation du génie logiciel.