Ich habe in letzter Zeit mit einem sehr nervigen Problem mit dem Schreiben in Prozess-Speicher in C++ gekämpft ... Ich kann nicht in Prozessspeicher mit mehreren Offsets schreiben! Obwohl es Tausende von Seiten gibt, die erklären, wie Sie dieses Problem beheben, scheint es immer noch nicht für mich zu funktionieren. Ich habe den ganzen Tag auf Google gesucht und viele Beispiele gefunden, wie ich dieses Problem beheben kann, aber es scheint immer noch nicht für mich zu funktionieren.WriteProcessMemory mit mehreren Offsets C++
Also lassen Sie mich zuerst erklären, wie ich schreibe, um Speicher selbst zu verarbeiten, und Sie könnten es möglicherweise danach korrigieren.
Lassen Sie uns sagen, ich habe eine Basisadresse: 0x04AF3C94
Erste Offsets als: 0x1C
zweiten Offsets wie: 0x20
Dritte als: 0x568
Und viertens als: 0x134
Wie mache ich das selbst:
DWORD offset1 = 0x1C;
DWORD offset2 = 0x20;
DWORD offset3 = 0x568;
DWORD offset4 = 0x134;
DWORD base = 0x04AF3C94;
DWORD pointer;
DWORD pointer2;
DWORD pointer3;
DWORD pointer4;
DWORD pointer5;
ReadProcessMemory(handle, LPVOID(base), &pointer, sizeof(pointer), 0);
ReadProcessMemory(handle, LPVOID(pointer + offset1), &pointer2, sizeof(pointer2), 0);
ReadProcessMemory(handle, LPVOID(pointer2 + offset2), &pointer3, sizeof(pointer3), 0);
ReadProcessMemory(handle, LPVOID(pointer3 + offset3), &pointer4, sizeof(pointer4), 0);
ReadProcessMemory(handle, LPVOID(pointer4 + offset4), &pointer5, sizeof(pointer4), 0);
int value = 500;
WriteProcessMemory(handle, LPVOID(pointer5), &value, sizeof(value), 0);
Wie Sie sehen können, wenn ich 4 Offsets wie in diesem Beispiel habe, füge ich jeden Offset einzeln zur Basisadresse hinzu, bis ich einen Wert habe, der jeden zur Basisadresse hinzugefügten Offset speichert. Das funktioniert offenbar nicht, was soll ich machen !?
_Das scheinbar nicht funktionieren_ - was * genau * nicht funktioniert, erleben Sie einen Absturz beim Lesen, Schreiben oder das Universum plötzlich neu gestartet? – zett42
Nun, wenn ich zum Beispiel Wert habe ich möchte ändern, wird es nicht ändern ... Das Programm stürzt nicht ab oder nichts, aber die Werte, die ich versuche zu ändern, sind einfach nicht betroffen. –