Einzelnen Beitrag anzeigen

Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: Dynamische Memory Adressen - Startpunkt herausfinden

  Alt 19. Jul 2015, 16:36
Die Signatur ist ja gerade ist ja gerade dafür da die Funktion wiederzufinden OBWOHL die Adresse sich geändert hat.

Im Anhang ist ein Bild von einer Exe in einem Disassembler. Links siehst du rot Umrandet die ersten paar Befehle der Funktion die du finden willst (deren Signatur du willst). Auf der rechten Seite in der Hex-Ansicht siehst du die binäre Darstellung (als Hexwerte) dieser Befehle. Du kopierst dir die ersten x Bytes und schaust ob diese Bytereihenfolge mehr als einmal (also noch an anderen Stellen) vorkommt. Falls ja, musst du die Signatur solange vergrößern bis sie eindeutig ist.

In deinem Programm suchst du nun nach genau dieser Bytefolge (das ist jetzt die aus dem Beispiel, du musst natürlich deine Signatur benutzen):

Zitat:
56 33 F6 57 8B 3D 24 C2 5B 00 C7 05 48 86 5F 00 74 C6 5D 00 39 35 50 86 5F 00 76 1B
Da sich zumindest für far-jumps/calls/etc die Adressen ändern können musst du diese Bytes ignorieren.
Dadurch ergibt sich in meinem Fall folgendes Muster:

Zitat:
56 33 F6 57 8B 3D ** ** ** ** C7 05 ** ** ** ** ** ** ** ** 39 35 ** ** ** ** 76 1B
** bedeutet in dem Fall dass diese Bytes bei der Suche nach der Signatur ignoriert werden.
Du solltest jetzt nochmal sichergehen dass die Signatur trotz der "Don't care"-Bytes immernoch eindeutig ist!


Edit: Ich glaube ich hab dich ein bisschen falsch verstanden. Du suchst keine Funktion sondern einen einzelnen Variablenwert. Du kannst mit GetModuleHandle(nil) die Startadresse deines Prozesses herausfinden. Ggf. musst du dann die Basisadresse des Spiels per DLL-Injection herausfinden.
Miniaturansicht angehängter Grafiken
signatur.jpg  
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."

Geändert von Neutral General (19. Jul 2015 um 16:45 Uhr)
  Mit Zitat antworten Zitat