Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Speicherbereich einer Anwendung ermitteln? (https://www.delphipraxis.net/32814-speicherbereich-einer-anwendung-ermitteln.html)

FreewareFire 28. Okt 2004 10:30


Speicherbereich einer Anwendung ermitteln?
 
Hallo zusammen!

Kann mir einer sagen wie ich den Speicherbereich einer Anwendung abrufen kann? Sowas wie in einem Gametrainer.
z.B. ArtMoney oder so? Die durchsuchen nur den Speicher des ausgewählten Prozesses. Wie bekomme ich den Anfang, also
die Startadresse und die länge des Prozesses heraus? z.B. Freecell oder so? Super wäre auch, wenn jemand
weiß, wie man den Speicher dann noch nach Werten durchsucht. Also sowas wie ArtMoney halt. Muss nur nicht so
ausgereift sein. Ein kleines Prog tut es auch.

Grundlegend:

1. Fenster suchen und Handle abrufen
2. Abfrage des Speicherbereiches (Startadresse + Länge)
3. Suchen nach Werten in diesem Speicherbereich

Ich hab über 50 Seiten durchsucht und nix gefunden. Weiß jemand eine Seite oder kann mir weiterhelfen?

Danke.

Gruß

Ralf

Dax 28. Okt 2004 11:05

Re: Speicherbereich einer Anwendung ermitteln?
 
Unter Windows hat jeder Prozess einen virtuellen Addressbereich von 4GB. Der fängt bei $00000000 an, ist $FFFFFFFF Byte lang und hört somit bei $FFFFFFFF auf.

FreewareFire 28. Okt 2004 11:09

Re: Speicherbereich einer Anwendung ermitteln?
 
Aber wie kriege Ich raus, wo der Prozess liegt - bzw. wie hänge ich mich an den Prozess ran? -> Wie kann ich den Prozess jetzt durchsuchen? Also nach einem bestimmten Wert?

c113plpbr 28. Okt 2004 14:39

Re: Speicherbereich einer Anwendung ermitteln?
 
Schau dir mal den Generic Game Trainer an. Der Author hat anscheinend seine Homepage aufgegeben, aber den quellcode gibts immernoch , dank mir ;) . Schau mal in diesen Thread, da hab ich den Quellcode gepostet.
Der Trainer öffnet einen prozess per OpenProcess, durchsucht den Speicher nach dem gesuchten wert (ReadProcessMemory), und verändert bei bedarf diesen Wert auch (WriteProcessMemory).
Der Quellcode ist nach etwas einarbeiten recht gut verständlich, und zeigt sehr schön, wie das MemoryCheating in Spielen funktioniert. Solange die Addressen der werte im speicher gleich bleiben (z.B. nach dem neustart des spieles), kann man das ganze auch später wiederverwenden, ohne die werte neu suchen zu müssen.

hoffe das hilft, ciao, Philipp

FreewareFire 28. Okt 2004 22:09

Re: Speicherbereich einer Anwendung ermitteln?
 
@c113plpbr

Super! Ich werde mir den Code gleich mal ansehen. Nachdem was du beschreibst ist es aber genau das was ich suche!

Danke erstmal !!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:41 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