Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi start und endwert vom speicher eines programmes ermitteln??? (https://www.delphipraxis.net/59889-start-und-endwert-vom-speicher-eines-programmes-ermitteln.html)

DJ_Tom 30. Dez 2005 02:49


start und endwert vom speicher eines programmes ermitteln???
 
:hi:
ich würde gerne von einem externen programm den startbereich sowie endbereich des benutzten speichers ermitteln weiß jmd. wie man dies bewerkstelligen könnte???

also die größe von dem benutzten speicher eines programmes kann ich ja so auslesen:

Code:
Function GetMemoryUsage(hProcess : THandle): DWORD;
var pmc: PPROCESS_MEMORY_COUNTERS;
     cb: Integer;
begin
     Result := 0;
     cb := SizeOf(_PROCESS_MEMORY_COUNTERS);
     GetMem(pmc, cb);
     pmc^.cb := cb;
     if GetProcessMemoryInfo(hProcess, pmc, cb) then Result := pmc^.WorkingSetSize;
     FreeMem(pmc);
end;
aber wie den start & endwert :?:

wäre für jede hilfe echt dankbar...

Luckie 30. Dez 2005 02:59

Re: start und endwert vom speicher eines programmes ermittel
 
Bei so was frage ich immer zu erst: Wozu brauchst du das?

DJ_Tom 30. Dez 2005 03:02

Re: start und endwert vom speicher eines programmes ermittel
 
für sowas wie einen trainer ich möchten den speicher eines anderen programmes durchsuchen nur würde ich halt gern nur den bereich durchsuchen der von dem programm genutzt wird , da es sonst doch immer recht lang dauert...

Luckie 30. Dez 2005 03:36

Re: start und endwert vom speicher eines programmes ermittel
 
Dann such doch einfach mal: Hier im Forum suchenspiele trainer oder im Delphi Forum, da haben die schon mal so was gemacht: [df]spiele trainer[/df].

DJ_Tom 30. Dez 2005 03:44

Re: start und endwert vom speicher eines programmes ermittel
 
ja das problem is bei den trainern das die sich erst z.b. mit artmoney die adresse suchen die geändert werden soll und dann den trainer bauen...

ich möchte mir die adtresse jedoch gerne selber suchen in meinem prog. ohne ext. programme...

was ja auch an sich nicht so das problem ist nur würde ich gerne nur den bereich durchsuchen müssen welchen das prog. nutzt....

himitsu 30. Dez 2005 10:25

Re: start und endwert vom speicher eines programmes ermittel
 
Also, wenn es um die virtuelle Speicherbelegung geht, also so wie es vom Programm aus gesehn wird, dann wird von $00010000 bis $7FFFFFFF (außer im 3GB-Mode und 64-Bit-Mode) irgendwas belegt, da einiges ganz vorn, anderes in der Mitte und ein Til ganz hinten ausgerichtet wird.
und da natürlich der Speicher nicht voll belegt ist, gibt es also rießigen Lücken in der Mitte.

Wie weit die Daten im virtuellen Speicher verteilt sind, kannst du ja schon alleine an den eingebundenen DLLs erkennen.
> Tutorials und Kurse -> IMAGEBASE - wichtiges zu DLL und Co.

dimo 31. Dez 2005 16:21

Re: start und endwert vom speicher eines programmes ermittel
 
Wie man weiss sind der Stack und das Heap auf beiden Enden des Speichers, und beide wachsen in Richtung Mitte...

Luckie 3. Jan 2006 19:59

Re: start und endwert vom speicher eines programmes ermittel
 
Mit MSDN-Library durchsuchenVirtualQueryEx kannst du die Speicheradressen ermitteln, die überhaupt belegt sind.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz