Comment faire un Trainer (ou lire et écrire dans la mémoire)

Dans les jeux sur PC (et anciennement avec des cartouches tel GameShark), il y a deux manières de tricher. La première est d’utiliser les codes que les développeurs ont fait et la seconde est d’utiliser un petit programme qui roule en même temps que le jeu et qui modifie des paramètres importants durant l’exécution du jeu. Ce programme s’appelle un Trainer et il ne fait qu’écrire dans la mémoire du jeu. Il change donc les valeurs des variables telles la vie, le niveau, la magie, etc.

La question la plus difficile à répondre lorsque nous voulons créer un Trainer est « Mais la valeur que je veux modifier est où dans la mémoire? ». Il faut donc trouver le bon emplacement parce que sinon, ce pourrait être une autre variable qui serait modifiée ou encore pire, le code exécutable. Cette dernière modification risquerait de faire planter le jeu. Ce qui est plaisant par contre, c’est qu’une fois l’adresse mémoire trouvée, c’est toujours celle là à chaque exécution du jeu (sauf si le jeu est mis à jour).

Pour trouver l’adresse de la variable désirée dans la mémoire, une technique consiste à lister toutes les adresses qui sont à la valeur voulue. Par exemple, si le joueur commençait avec 100|100 de vie et de magie, il y aurait au moins deux endroits dans la mémoire avec la valeur 100. Une fois ces emplacements découvert, il faut s’arranger pour se faire mal et tomber à 78|100 par exemple. Une fois fait, il faut regarder la liste des adresses précédemment trouvées et garder seulement celles qui sont maintenant à 78. Puis nous répétons tant que nous n’avons pas qu’un seul endroit. Avec cette adresse unique connue, il est maintenant possible de créer un petit programme qui va modifier la valeur à un intervalle régulier et si le jeu le permet, avec une valeur plus grande que 100.

Un exemple de trainer

Vous pouvez télécharger le fichier ZIP ci-haut. Dedans, il s’y trouve un programme « target.exe » qui fait office de jeu et un autre « memoire.exe » qui lit et écrit dans la mémoire. Les codes sources pour Visual Studio C++ 2008 Express sont fournis.

———-

Target.exe est un programme qui tient en mémoire un nombre entier. Vous pouvez le modifier et l’afficher. Ainsi, vous le modifiez pour que « memoire.exe » puisse trouver l’endroit exact et vous l’affichez pour voir le résultat quand « memoire.exe » va réussir à modifier la valeur à distance.

Memoire.exe fait la recherche de l’adresse et le Trainer. Normalement, ces deux éléments sont séparés, car ce n’est pas le joueur qui va chercher les adresses intéressante, mais le développeur du Trainer.

———-

Voici comment essayer ces programmes:

  • Glissez l’icône de « target.exe » sur celle de « memoire.exe ». Ainsi, « memoire.exe » sera exécuté avec comme paramètre l’emplacement du programme « target.exe ».
  • « memoire.exe » exécute le programme « target.exe » et demande la valeur du premier coup. Dans la fenêtre de « target.exe » la valeur du premier coup est indiquée comme étant « 777 ». Vous pouvez aussi l’afficher avec la fonction 1. Alors écrivez dans la fenêtre « memoire.exe » « 777 ».
  • Une fois que les trois endroits sont trouvés (c’est trois pour ce programme), le menu apparaît. Dans « target.exe », prenez l’option 2 et mettez « 888 » par exemple. Vous pouvez vérifier le changement avec l’option 1 qui affichera « 888 ».
  • Dans « memoire.exe », prenez l’option 1 et dites-lui que la valeur est maintenant « 888 ».
  • Normalement, vous voyez que seul le premier des trois endroits est toujours bon. C’est donc l’emplacement que nous cherchions. Étant donné que l’adresse n’est pas censée être différente d’un ordinateur à l’autre, l’adresse est « 12ff70 ». Nous pouvons alors faire un Trainer qui change la valeur à cet emplacement.
  • Pour simuler un Trainer, dans « memoire.exe », prenez l’option 2 et écrivez « 945 ».
  • Dans « target.exe », affichez la valeur avec l’option 1. Magie, la valeur est « 945 ».

Une réflexion au sujet de « Comment faire un Trainer (ou lire et écrire dans la mémoire) »

Les commentaires sont fermés.