Simples Gamehacking via Memoryediting

03/03/2014 14:18 Mi4uric3#61
Quote:
Originally Posted by Sergeant Wasabi View Post
Na ja, so stands halt im Tutorial. Da ging ich von aus das das so stimmt. Wie mach ichs richtig?
Völliger Unsinn, hab ich direkt mal korrigiert, muss beim Umwandeln von Code in ein Tutorial passiert sein.
Danke fürs Aufzeigen!
03/03/2014 14:27 Sergeant Wasabi#62
Danke. :)
05/27/2015 14:38 DieterPolen#63
Wollte mal was für GTA5 ausprobieren, gibt mir aber immer nur 0 als Wert zurück -.-
warum ist das so?

Base Adresse ist ja immer anders aber in diesem Fall war die Richtige: 13ffe0000
und die statische addy: 1A94D08
"GTA5.exe+1A94D08" CE lässt grüßen
-> zeigt im SinglePlayer Munition an


da die Base von GTA5 in dem Fall 13ffe0000 ist/war gehe ich davon aus das es ein 64bit Prozess ist weils ja 9 Hex Zahlen sind, nicht?



kann mir bitte wer helfen?
05/27/2015 14:47 Mi4uric3#64
Quote:
Originally Posted by DieterPolen View Post
ReadInteger
Hab mich länger nicht mehr damit beschäftigt, aber was mir aufgefallen ist, ist dass ReadInteger ist hier schonmal völlig falsch angebracht ist. Integer Werte können nämlich maximal 4 Bytes enthalten, 64 bit Pointer aber 8.
06/02/2015 16:43 warfley#65
Quote:
Originally Posted by DieterPolen View Post
Wollte mal was für GTA5 ausprobieren, gibt mir aber immer nur 0 als Wert zurück -.-
warum ist das so?

Base Adresse ist ja immer anders aber in diesem Fall war die Richtige: 13ffe0000
und die statische addy: 1A94D08
"GTA5.exe+1A94D08" CE lässt grüßen
-> zeigt im SinglePlayer Munition an


da die Base von GTA5 in dem Fall 13ffe0000 ist/war gehe ich davon aus das es ein 64bit Prozess ist weils ja 9 Hex Zahlen sind, nicht?



kann mir bitte wer helfen?
Im Hexadecimal System bilden 1 Buchstabe 4 Bit ab. Ist der Adressraum nun durch 32 Bit begrenzt ist die Adresse zwischen 0 und 32/4 = 8 Zeichen im Hexadezimal System lang, bei 64 bit können die Adressen bis zu 16 Zeichen lang werden, da mehr als 1,8x10^19 Bytes Adressiert werden können. Nun kann Integer (32 Bit Ganzzahlen) nicht diese Werte Annehmen, das heißt aus z.b. 0x13ffe0000 wird 0x3ffe0000 eine schlappe Verschiebung um 16^9.

Nutze für Operationen auf Speicheradressen den Typen IntPtr, das ist ein Integer von der Größe eines Pointers (also 8, 16, 32, 64 bit je nach system)