Ich habe den Code, um einen Wert aus dem Speicher zu lesen, der funktioniert, wenn die Speicheradresse auf einen statischen 4-Byte-Wert zeigt, aber ich versuche, auf einen 4-Byte-Wert zuzugreifen, der in einer dynamischen ist Ort und müssen daher zuerst nach dem Zeiger suchen und dann erneut suchen, um den 4-Byte-Wert zu erhalten.C# ReadProcessMemory - Zugriff/Lesen von Zeigern
Unten finden Sie den Code ich habe, die die Adresse des Pointer zurückgeben sollte, aber es gibt nur 0 ...
bAddr = (IntPtr)0x0017C370; // Base address to find the Pointer (Currently: 0x00267A50)
ReadProcessMemory(hProc, bAddr, buffer, 4, out bytesRW);
output = BitConverter.ToInt32(buffer, 0);
txtOutput.Text = output.ToString();
Pseudo Code, den ich als siehe Arbeiten:
bAddr = (IntPtr)0x0017C370; // Base address to find the Pointer (Currently: 0x00267A50)
ReadProcessMemory(hProc, bAddr, buffer, 4, out bytesRW);
output = BitConverter.ToInt32(buffer, 0);
bAddr = (IntPtr)output; // Should now contain the address 0x00267A50
ReadProcessMemory(hProc, bAddr, buffer, 4, out bytesRW);
output = BitConverter.ToInt32(buffer, 0);
txtOutput.Text = output.ToString();
Kann jemand Schuppen Irgendein Licht auf, was ich tun muss, um eine Adresse zu finden und dann nach dieser Adresse zu suchen, um einen Wert zu finden?
Was gibt 'ReadProcessMemory' zurück? Es könnte nur scheitern, in welchem Fall 'GetLastError' etwas Licht werfen könnte. –