Warum denkst du, dass es nicht die richtige Basisadresse ist?
Vllt. sind deine Nachfolgenden Berechnungen einfach nicht ganz korrekt?
(PS: Ich denke "Eintrittspunkt" ist durchaus ein nutzbarer Begriff in dem Zusammenhang wenn man bedenkt, dass es im Englischen "entry point" genannt wird.)
Weil ich es so probiert habe:
- Spiel gestartet.
- Basisadresse der Methode abgefragt und 008D0000 bekommen.
- Danach habe ich über Cheat Engine den Wert gesucht den ich haben wollte: 047AEC0C
- Wenn ich nicht falsch liege bekomme ich die Speicheradresse indem ich die Basisadresse von der in Cheat Engine gefundene Speicheradresse subtrahiere: 047AEC0C - 008D0000 = 3EDEC0C
- Nun lese ich in Delphi die Adresse (Basisadresse + Speicheradresse) aus und das klappt natürlich.
- Um ganz sicher zu sein teste ich dies natürlich indem ich das Spiel neustarte.
- Also versuche ich nochmal die errechnete Speicheradresse (03D1AE4C) mit der neuen Basisadresse (00FB0000) zu addieren und diese Adresse auszulesen, was nun nicht mehr klappt. (00FB0000 + 3EDEC0C = 4E8EC0C)
- Habe also Cheat Engine wieder angeschmissen, die Adresse manuel gesucht und siehe da: Die neue Adresse ist 0456E30C, also anders als ich es einen Schritt vorher versucht habe...
Habe ich hier was falsch gemacht?
Könnte es sein das csgo.exe nicht das richtige Modul ist?
BaseAddress := GetBasePointerOfModule(PID, 'csgo.exe');
Hab das ganze gerade 3 mal getestet um sicher sein zu können keinen Fehler gemacht zu haben.
Freundliche Grüsse