Bonjour,
Depuis peu je m’intéresse au programme CheatEngine, qui permet d'explorer les adresses d'un processus.
J'arrive bien à récupérer les valeurs qui m’intéressent quand celle-ci dépendent uniquement de l'adresse du base du processus + un offset.
Sous CheatEngine cela resemble à ça :
Puis en C++ :
Cette partie fonctionne très bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 int currentMana; ReadProcessMemory(hProcess, (LPCVOID)(baseAdress + 0xAE01BC), ¤tMana, sizeof(DWORD), NULL);
Maintenant je voudrais récupérer une valeur ayant pour aspect sous CheatEngine :
En c++ voila ce que j'ai fait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 DWORD pointer1; DWORD pointer2; DWORD offset1 = 0x3C; DWORD offset2 = 0x240; BYTE result; ReadProcessMemory(hProcess, (LPCVOID)(baseAdress + 0xAE01BC), &pointer1, sizeof(DWORD), NULL); ReadProcessMemory(hProcess, (LPCVOID)(pointer1 + offset1), &pointer2, sizeof(DWORD), NULL); ReadProcessMemory(hProcess, (LPCVOID)(pointer2 + offset2), &result, sizeof(BYTE), NULL); std::cout << "Value : " << (BYTE)result << std::endl;
Je ne récupère pas du tout la bonne valeur.
Si quelqu'un à une idée du pourquoi.
Merci d'avance !
Partager