AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Dynamische Memory Adressen - Startpunkt herausfinden
Thema durchsuchen
Ansicht
Themen-Optionen

Dynamische Memory Adressen - Startpunkt herausfinden

Ein Thema von milos · begonnen am 19. Jul 2015 · letzter Beitrag vom 24. Jul 2015
 
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#11

AW: Dynamische Memory Adressen - Startpunkt herausfinden

  Alt 24. Jul 2015, 17:28
Das Problem wird doch sein dass die Adresse eines Zustandes (z.B. HP, Munition) nicht relativ zur Basiadresse des Moduls berechnet werden kann sondern ein Pointer darauf zeigt (z.B. Speicher auf dem Heap).

Im Spiel sieht das dann so aus:

Delphi-Quellcode:
mov eax, $00401234 // --> absolut, kann relativ zum Modulbase berechnet werden
mov ebx, [eax] // Pointer vom reserviertem Speicherbereich lesen (das was in ebx steht ist dann das was du haben willst und für ReadProcessMemory brauchst)
mov ecx, [ebx] // Wert lesen, z.B. HP
Was du also machen musst, ist die absolute Adresse rauszufinden, und dann 2x ReadProcessMemory auszuführen um den Wert zu erhalten.

1x $00401234 lesen -> entspricht [eax] bzw. [$00401234]
1x von der Adresse lesen die dort Stand -> entspricht [ebx]

Wenn du jetzt rückwärts versucht daran zu kommen, wirst du nur ebx erhalten. Und der Wert ändern sich bei dir logischerweise immer.

Wenn du das Spiel debuggen kannst, ist es am einfachsten einen Hardware-Read-Breakpoint zu setzen bzw. ein Memory Breakpoint OnAccess auf den Speicherbereich von ebx (den du ermittelt hast, und der sicht immer ändert).
Dann bleibt der Debugger dort stehen wo auf [ebx] zugegriffen wird. Dann musst du halt den Code davor analysieren bis du auf einen festen Speicherbereich ($00401234) stößt und danach über mehrmaliges ReadProcessMemory den Wert auslesen.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz