Bonjour tous le monde,

alors tout d'abord ce que je cherche a faire, c'est récupérer les valeurs de certaines variables dans un jeu.
En fait le jeu en question est fabriqué avec un logiciel de création de rpg. (RPG Maker)
Il s'agit d'un jeu-test, que j'ai fait rapidement, et qui ne comporte presque rien.

Et ce que j'aimerais c'est pouvoir récupérer les valeurs des variables et les modifier avec un logiciel lancer en arrière plan.

Je programme en C/C++ (avec l'api windows).
J'utilise la fonction VirtualQueryEx pour récupérer les plages mémoire du processus du jeu.
Et j'utilise ReadProcessMemory pour lire les octets.

J'ai codé un petit programme qui récupère tous les octets de chaque plages mémoire du processus (enfin seulement ceux marqué en MEM_COMMIT) et qui les écrit dans un fichier (avec une petit en-tête a chaque nouvelle plage mémoire).
Grace a ça j'ai pu retrouver l'endroit où étaient stocké les valeurs qui m'intéresse.

Mais j'ai réussi a faire ça dans mon jeu-test uniquement parce que, dans le le logiciel de création (RPG Maker), j'ai mis toutes les variables a une même valeur.
Du coup j'ai pu les retrouver plutôt facilement.
Mais ce que j'aimerais vraiment c'est pouvoir retrouver les valeurs de ces variables dans tous les jeux et tous les cas possibles.

Mais je sais bien que les plages mémoires d'un processus ne sont pas toujours les mêmes. Les adresses et les tailles peuvent varier.

Donc ce qu'il me faudrait c'est trouver un moyen pour pouvoir, dans un premier temps, identifier la plage mémoire du processus dans lequel ce trouve les variables qui m'intéresse.
J'ai essayé de voir avec les MEMORY_BASIC_INFORMATION, mais il y a de nombreuses autres plages mémoire qui ont les mêmes informations que celle qui m'intéresse.

Donc comment faire pour pouvoir retrouver a coup sur la plage mémoire dans laquelle apparaitront les variables ?



( Les gens qui ont déjà programmé des logiciels de ce genre (trainer, ou autre cheat pour des jeux) comment avez vous fait pour pouvoir trouver les valeurs qui vous intéressait dans la mémoire a coup sur ? )