Bonjour,

J'aimerais utiliser la fonction ReadProcessMemory et pour cela, je fais quelques tests.
J'essaye d'abord de lire la mémoire du programme lui-même avant d'essayer lire la mémoire d'un programme extérieur, mais je n'y arrive pas.

Voilà le code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include "getwindow.hpp"

using namespace std;

int main(int argc, char* argv[]) {

    int someValue(10);

    const HWND window(getWindowFromTitle("Memory"));
    HANDLE handle;
    char buf[256];
    unsigned long bytesRead(0);

    if(!window) {

        cerr << "Can't find the window" << endl;
        exit(1);
    }

    unsigned long pid;

    GetWindowThreadProcessId(window, &pid);
    handle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);

    if(!handle) {

        cerr << "Can't open the process" << endl;
        exit(1);
    }

    ReadProcessMemory(handle, &someValue, buf, sizeof(int), &bytesRead);

    cout << "Bytes read: " << bytesRead << endl;
    cout << "Data: " << *reinterpret_cast<int*>(&buf) << endl;
    CloseHandle(handle);

    return 0;
}
Je m'attendais à obtenir "10" à la sortie, mais le programme affiche un nombre qui ne correspond pas du tout...
Merci de votre future aide