2017-08-12 1 views
0

Ich verwende DWORD BaseAddress = (DWORD)GetModuleHandle("example.exe");, um die Basisadresse meines angehängten Prozesses zu erhalten. Alle Adressen, die ich verwende, sind DWORD-Typ und ich verwende 0x vor der Adresse, so dass es hexadezimal und nicht dezimal ist. Ich benutze einen x64 Computer. Diese beiden Adressen, die ich lese, enthalten einen Textwert.C++ ReadProcessMemory Basisadresse + Offset funktioniert nicht

Dieser Code funktioniert für eine statische Adresse:

ReadProcessMemory(pHandle, (LPVOID)Address1, (LPVOID)&Address1Value, sizeof(Address1Value)*3, 0); 
char PlayerNameBuffer[13] = {0}; 
snprintf(Address1Buffer, sizeof(Address1Value)*3, "%s", (LPVOID)&Address1Value); 
ImprovedSetWindowText(Address1DisplayLabel, Address1Buffer); 

Warum also nicht diese Arbeit für eine dynamische Adresse ?:

DWORD Address2 = BaseAddress + Addres2Offset; 
ReadProcessMemory(pHandle, (LPVOID)Address2, (LPVOID)&Address2Value, sizeof(Address2Value)*3, 0); 
char LocationNameBuffer[13] = {0}; 
_snprintf(Address2Buffer, sizeof(Address2Value)*3, "%s", (LPVOID)&Address2Value); 
ImprovedSetWindowText(Address2DisplayLabel, Address2Buffer); 
+0

Wie erhalten Sie 'Address2Offset'? Ich denke nicht, dass es hier eine Rolle spielt, aber technisch gesehen sollten Sie einen 64-Bit-Typ verwenden, um Adressen zu halten, wenn Ihr Prozess ein 64-Bit-Prozess ist. DWORD ist 32 Bits breit. –

+0

Ich reverse Engineering und habe es gefunden. Ich weiß, es ist korrekt für 100% Tatsache, weil ich eine andere Software verwendet habe, um die Adresse und Offset einzugeben, um zu zeigen, was der Wert ist, aber ich habe Probleme, es in C++ zu verwenden. Außerdem habe ich DWORD in DWORD64 geändert und es macht keinen Unterschied, ich glaube nicht, dass das Problem mit den Variablentypen zu tun hat. – Dav3

+0

Mein Problem wurde gelöst, ich benutze GetModuleHandle nicht richtig. – Dav3

Antwort

-1

Mein Problem wurde gelöst, ich bin mit GetModuleHandle falsch.

+0

Bitte erläutern Sie, dass die nächste Person, die es falsch verwendet, (1) erkennen kann, dass ihr der falsche Code zu Ihnen passt und (2) den richtigen Code sieht. –

Verwandte Themen