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 RAM auslesen (https://www.delphipraxis.net/13504-ram-auslesen.html)

Florian H 19. Dez 2003 18:52


RAM auslesen
 
Hi,

wie kann ich denn den Inhalt des Arbeitsspeichers auslesen und evtl. verändern?
Habe dazu nix passendes gefunden...
Möchste auch mal zur Übung so ein Cheat-Tool machen, wo man also bei Spielen z.B. die Punkte über den Arbeitsspeicher ändern kann :stupid:

grüße
flo

SirThornberry 19. Dez 2003 18:59

Re: RAM auslesen
 
such mal nach Trainer, da hat ich vor kurzem glaube was gelesen

Assarbad 14. Feb 2004 19:29

Re: RAM auslesen
 
Was möchtest du also ... der Titel ist wahlweise falsch gewählt, oder deine Frage falsch gestellt.

Den RAM kannst du über \Device\PhysicalMemory auslesen. Dann solltest du allerdings auch Ahnung haben was PTEs sind usw. Wenn das nicht der Fall ist, geht es ja vielleicht auf das hinaus was in deiner Frage anklingt. Ein Trainer. Also Modifikation von Speicher in einem fremden Prozess:

ReadProcessMemory()
WriteProcessMemory()

... der Rest ist RTFM

Florian H 15. Feb 2004 07:54

Re: RAM auslesen
 
ok, danke!

Assarbad 15. Feb 2004 10:02

Re: RAM auslesen
 
Zitat:

Zitat von anonymous ;)
ne kleine Frage zu dem Beitrag hier:
Stellen wir uns mal vor, ich will einen Trainer für ein Spiel schreiben. Woher weiß ich MSDN
1) lpBaseAddress
2) lpBuffer
3) nSize
4) lpNumberOfBytesRead
5) Welche Daten sich wo befinden. Gibt es da sowas wie ne Klasse?

lpBuffer und nSize sind die Spezifikationen des, von deinem Programm vorgegebenen, Puffers. lpNumberOfBytesRead ist der Pointer (in Delphi vermutlich als VAR deklariert) auf ein DWORD welches die Größe des gelesenen Teilstückes zurückgibt.
Bleibt nur noch lpBaseAddress. lpBaseAddress würde man in vielen Fällen vermutlich zuerst mit $400000 ansetzen, aber IMO wäre es besser, wenn man sich solche Dinge über Toolhelp oder die NT Native APIs holt. Dann kann man erstmal das komplette Modul dumpen. Wenn die Werte, welche angepaßt werden sollen, nicht innerhalb des Moduls sind, muß man den/die Heap/s des Zielprozesses abklappern.


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