Ich versuche zu verstehen C++ Art und Weise des Lesens/Schreibens im Speicher. Was ich habe ist, ich versuche, eine Adresse von einem Zeiger zu bekommen. Ich habe den Zeiger, der auf meine gewünschte Adresse zeigen wird. Wie ich die aktuelle Adresse habe, die ich verwenden möchte, um den Wert zu lesen, nehmen wir an, die Adresse ist 14C9862, aber wie jedes Mal, wenn ich das Programm erneut ausführen, ändert sich diese Adresse. Ich habe den Zeiger, der an diese Adresse schreibt (ich bin mit Cheat Engine), und es sagt der Zeiger gleich zu eax + ePSXE.exe + A82020 wie für EAX = 77420 und ePSXE.exe = 1718 (Ignorieren der Nullen), also Wie könnte ich das in C++ so schreiben, dass ich die ADRESSE jedes Mal bekomme, wenn ich das Programm erneut starte.C++ Holen Sie sich eine Adresse aus einem Zeiger
Aktuelle Code:
int readTest {}
ReadProcessMemory(handle, (LPBYTE*)ePSXe+pointer?, &readTest, sizeof(readTest), 0);
std::cout << readTest << std::endl;
Wie ich denke jetzt LPBYTE ein Zeiger auf ein Byte ist, so konnte es nicht sein, wie (A82020*)????
Ich bin nur verrückt zu werden, weiß ich nicht, wie es zu tun.
nicht zugelassen lpModuleEntry.szModule statt einer WCHAR ein Const Char sein? Visual gibt mir einen Fehler –
@MatthewSouza Eigentlich ist es 'TCHAR', die' wchar_t' ist, wenn Ihr Projekt für Unicode-Zeichensatz konfiguriert ist. Der obige Code wird nicht getestet, er sollte Ihnen eine Idee geben, wie Sie mit der Adresse umgehen können. – Nikita
Vielen Dank Ihre Antwort ist in der Tat richtig, es hat funktioniert! Aber ohne den EAX-Wert gibt es eine Zufallszahl von einer anderen Adresse. Ich weiß nicht die Hälfte der Dinge, die du geschrieben hast, aber ich werde es wirklich intensiv studieren. Vielen Dank für Ihre Antwort! –