IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

[POINTER] - ReadProcessMemory


Sujet :

C++

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Avril 2012
    Messages : 15
    Points : 12
    Points
    12
    Par défaut [POINTER] - ReadProcessMemory
    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 :

    Nom : 1.JPG
Affichages : 346
Taille : 17,2 Ko

    Puis en C++ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int currentMana;
    ReadProcessMemory(hProcess, (LPCVOID)(baseAdress + 0xAE01BC), &currentMana, sizeof(DWORD), NULL);
    Cette partie fonctionne très bien.

    Maintenant je voudrais récupérer une valeur ayant pour aspect sous CheatEngine :

    Nom : 2.JPG
Affichages : 350
Taille : 25,8 Ko

    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 !

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 071
    Points : 12 116
    Points
    12 116
    Par défaut
    Vous utilisez les offsets dans le mauvais ordre.
    L'IHM de votre cheater n'est pas convivial, faites les calculs vous-mêmes.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Avril 2012
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Merci bacelar !!!

    J'étais en train de devenir fou

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RTTI] TObject.FieldAdress(Name : String) : Pointer
    Par Clorish dans le forum Langage
    Réponses: 3
    Dernier message: 30/09/2004, 14h41
  2. Pointer sur un fichier FILE *
    Par Biou Pink Powa dans le forum C
    Réponses: 3
    Dernier message: 29/01/2004, 14h45
  3. templates et smart pointers
    Par delire8 dans le forum C++
    Réponses: 9
    Dernier message: 10/07/2003, 16h26
  4. Réponses: 5
    Dernier message: 05/07/2003, 11h52
  5. [Pointer]Treeview.Data
    Par rbag dans le forum Composants VCL
    Réponses: 7
    Dernier message: 31/08/2002, 01h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo