Basic game reverse engineering with Cheat Engine

Vous voulez vous améliorer au reverse, ou tout simplement commencer ? Moi aussi !
Ici nous allons voir comment utiliser le logiciel Cheat Engine afin de modifier la valeur de variables d'un jeu.

Présentation du jeu

J'ai récemment développé un petit jeu pour m'améliorer en C#, mais aussi pour pouvoir m'apprendre l'ingénierie inverse, mon but n'était pas de faire un jeu AAA 100% à la main, c'est pourquoi j'ai utilisé Unity afin de me faciliter la tâche.

Voilà à quoi ressemble le jeu :

Le joueur incarne un renard qui peut se déplacer et sauter. Le joueur a 5 vies (en bas à gauche de l'écran), le joueur perd une vie si ses points de vie tombent à 0, ou si il tombe de l'île flottante (pas le dessert). Le jeu se ferme dès que le joueur n'a plus de vies disponibles.

Cheat Engine à l'action

Essayons alors d'augmenter le nombre de vies du joueur. Si vous n'avez jamais utilisé Cheat Engine voilà à quoi ça ressemble :

Pour commencer il faut dire à Cheat Engine quel processus suivre, afin d'en trouver les adresses utilisées. Pour ce faire on clique sur l'icone en haut à gauche 'Select a process to open', et on sélectionne le jeu 'RE1.exe'. Une fois cela fait, il faut dire à Cheat Engine de faire un scan des adresses utilisées par ce processus, en cliquant sur 'First scan', au besoin on peut sélectionner le type de scan en mettant comme valeur 'Unknown value'.

Cheat Engine nous trouve ici 30'018'560 adresses utilisées. Autant dire qu'il va nous être très difficile de trouver l'adresse qui gère le nombre de vies du personnage.
Mais il est possible de faire de nouveaux scans sur les adresses trouvées afin d'affiner nos recherches. Comme on connaît le nombre de vies du personnage dans le jeu, on peut filtrer plus facilement. On change le mode de scan sur 'Exact value' et on entre '5' car le personnage à actuellement 5 vies disponibles dans le jeu et on clique sur 'Next scan'.

Bon, plus que 11'775 adresses, c'est déjà mieux. Mais on peut encore affiner : si on tue le petit renard (c'est cruel mais nécessaire pour la science) le nombre de vie va décrémenter de 1. Il ne nous reste plus qu'à effectuer un autre scan sur la valeur '4' cette fois :

Plus que 14 adresses ! Essayons encore une fois de tuer le renard (pour le plaisir cette fois) et faisons un scan supplémentaire :

Le scan sur '3' nous donne une seule adresse possible. On est certains qu'il s'agit de l'adresse que nous cherchons depuis le début. Essayons de modifier sa valeur ! On double clique sur cette dernière, et elle s'ajoute dans la fenêtre inférieure du logiciel, on peut alors modifier sa valeur par un chiffre choisi de manière impartiale :

Que se passe-t-il dans le jeu ?

Voilà ! Nous venons de sauver le petit renard.