Home of Gamehacking - Archiv

Normale Version: speichernutzung von 64 bit adressen
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
hallo leute folgendes problem ich möchte gezielten freien speicher benutzen den ich mir selber gesucht habe auch statisch ist alles gut soweit wie in diesen beispiel aber das problem is das cheat engine nur 8 und 9 stellige adressen akzeptiert und keine zum beispiel 11stellige adressen.muss man cheat engine irgendwie sagen das es sich um eine 64 bit adresse handelt?


        [7FEF5C4BD04] beispiel adresse die ich benutzen möchte anstelle von [180010DB0]


cmp [180010DB0],(int)1024
je gang1
movss [rax+rbx*4],xmm0
jmp returnhere
Cheat Engine hat kein Problem mit den Adressen...
Der Grund liegt in der Befehlstruktur...

Im Prinzip hast Du mit dem Befehl Zugriff auf alle Adressen innerhalb des Prozesses.
Das heißt das Du diese so direkt ansprechen kannst...

Beispiel DOOM (2016) - Weil ichs da gerade offen hab...
Die Doom.exe belegt den Speicher von 0x7FF6CC870000 bis einschließlich 0x7FF6DF162FFF.
Das heißt ich kann mit den Compare Befehl sämtliche Adressen innerhalb dieses Bereich ansprechen.
Also z.B.

ASM Code
cmp [7FF6DF162FFF], #1024

In gewisserweise ist das vergleichbar wie bei den Sprungbefehlen. Mit den Sprungbefehlen wird ja keine Adresse deklariert wohin gesprungen werden soll.
Es wird lediglich eine Sprungweite festgelegt die dann zur entsprechenden Adresse führt.

Wenn Du eine Adresse nicht direkt vergleichen kannst dann ist das also kein Fehler von Cheat Engine...
Aber dafür gibts auch eine Lösung. Du musst einfach den Umweg über die Register gehen...
Hier mal anhand von deinem Beispiel...

ASM Code
mov rax, 7FEF5C4BD04
cmp [rax], #1024


So funktionierts auch mit diesen Adressen...