Einzelnen Beitrag anzeigen

Benutzerbild von c113plpbr
c113plpbr

Registriert seit: 18. Nov 2003
Ort: localhost
674 Beiträge
 
Delphi 2005 Professional
 
#13

Re: Speicherbereich einer Anwendung ermitteln

  Alt 26. Apr 2006, 21:26
@snuffmaster23:
ich glaube du bist irgendwo in der win9x-zeit hängen geblieben ... ^^

[edit]Aber im grunde hast du recht, jedes programm hat unter nt-systemen seinen eigenen adressraum, in dem es tun und lassen kann was es will
Daher kann es mit sehr hoher wahrscheinlichkeit auch passieren, dass das Programm jedesmal an exakt die gleiche Stelle geladen wird, und somit auf vielen rechnern läuft, und durch zufall auf einem anderen nicht, weil in diesen ein modul mehr geladen ist, und das den speicher schon irgendwo besetzt -> diverse variablen werden an anderen stellen alloziert -> problem für trainer ...[/edit]

@bundy:
Ich vermute also, dass du das modulehandle des modules benötigst, dem der speicherbereich "gehört". Naja, theoretisch gesehen könntest du das via GetModuleHandle das betreffliche handle erfahren, allerdings nur, wenn du dich IM fremden Prozess befindest ... und sobald du sowas versuchst, wirds kompliziert.

Also musst du wohl EnumProcessModules verwenden, die daraus resultierenden module-handles sollten die Startadressen der geladenen Module (z.B. dlls) sein.
Die könntest du als Anhaltspunkte verwenden, allerdings würde ich es nicht darauf ankommen lassen (ich hab diese methode verwendet, um aus relativen funktions-adressen absolute adressen zu bekommen, soweit funktioniert das, aber ob du das auch mit den adressen irgendwelcher, möglicherweise dynamisch allozierter variablen machen kannst, ist eine andere frage).

ciao, Philipp
Philipp
There is never enough time to do all the nothing you want.
*HABENWILL*
  Mit Zitat antworten Zitat