Hi,
ich hab hier mal zur Übung/aus Langeweile zwei Funktionen geschrieben, die das Lesen bzw. Schreiben einer Speicheradresse vereinfachen. Ist nichts besonderes und ich denke viele haben das bestimmt schon, aber vllt kann es ja der ein oder andere gebrauchen. Falls ihr Verbesserungsvorschläge habt, immer her damit
Hier die Funktion, die einen Wert schreibt:
Code:
bool MemoryWrite(LPWSTR fensterName, unsigned address, int value){
HWND fensterHandle;
fensterHandle = FindWindow(0,fensterName);
HANDLE processHandle;
DWORD id;
if (!fensterHandle)
{
return false;
} else {
GetWindowThreadProcessId(fensterHandle, &id);
processHandle = OpenProcess(PROCESS_VM_WRITE | PROCESS_VM_OPERATION, false, id);
fflush(stdin);
WriteProcessMemory(processHandle, (LPVOID) address, &value, sizeof(int), NULL);
return true;
}
}
und hier die Funktion, die den entsprechenden Wert der gewünschten Adresse zurückgibt:
Code:
int MemoryRead(LPWSTR fensterName, unsigned address){
int value;
HWND fensterHandle;
fensterHandle = FindWindow(0,fensterName);
HANDLE processHandle;
DWORD id;
GetWindowThreadProcessId(fensterHandle, &id);
processHandle = OpenProcess(PROCESS_VM_OPERATION | PROCESS_VM_READ , false, id);
fflush(stdin);
ReadProcessMemory(processHandle, (LPVOID) address, &value, sizeof(int), NULL);
return value;
}
Ich hoffe, ich kann euch damit evtl. wenigstens 1-2 Minuten Arbeit ersparen
mfg
Zulman