AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Speicheradressen eines Programms finden
Thema durchsuchen
Ansicht
Themen-Optionen

Speicheradressen eines Programms finden

Ein Thema von TurboMartin · begonnen am 31. Okt 2006 · letzter Beitrag vom 31. Okt 2006
Antwort Antwort
TurboMartin

Registriert seit: 13. Feb 2006
Ort: Bad Honnef
765 Beiträge
 
Turbo Delphi für Win32
 
#1

Speicheradressen eines Programms finden

  Alt 31. Okt 2006, 17:47
Hallo DP !
Ich hab jetzt mal eine ganz schwere Frage:
Wie kann ich von einem laufendem Programm alle Speicherplätze im RAM als TPointer bekommen?
Ich hoffe dass es auch ohne Kernelmode geht. Außerdem soll es unter Win9x und Win Me laufen.
Tomorrow will be cancelled due to lack of interest.

  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Speicheradressen eines Programms finden

  Alt 31. Okt 2006, 17:50
*Was genau* willst Du tun?
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
TurboMartin

Registriert seit: 13. Feb 2006
Ort: Bad Honnef
765 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Speicheradressen eines Programms finden

  Alt 31. Okt 2006, 17:52
Also, ich möchte, dass beim Klick auf einen Programmeintrag, z.B. in einer Listbox, in einer anderen Listbox dann alle Speicheradressen von diesem Programm stehen.
Tomorrow will be cancelled due to lack of interest.

  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Speicheradressen eines Programms finden

  Alt 31. Okt 2006, 18:04
Für Windows 2000 aufwärts hätte ich jetzt sogar fertigen Code dafür zur Hand, aber nicht für 98 Ich entwickel schon länger nix mehr was auch unter 9x laufen muss (und bin recht froh darüber)

Ausserdem solltest Du Dich auf die Anzeige von Speicherbereichen beschränken, die Anzeige aller benutzten Adressen ist eine Endlositeration, da Du für jede Adresse in der Listbox Speicher belegen musst, der dann mit angezeigt werden muss, was wiederum mehr Speicherbedarf für die Listbox bedeutet, der wiederum... Und dann ist der Speicher irgendwann voll und Dein Windows macht die Grätsche
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
TurboMartin

Registriert seit: 13. Feb 2006
Ort: Bad Honnef
765 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Speicheradressen eines Programms finden

  Alt 31. Okt 2006, 18:06
Falls es nicht sowas wie DeviceIoControl aus der NtosKrln.exe nimmt kannst du es mal posten.
Tomorrow will be cancelled due to lack of interest.

  Mit Zitat antworten Zitat
Axxus

Registriert seit: 3. Okt 2006
212 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Speicheradressen eines Programms finden

  Alt 31. Okt 2006, 18:09
Gib ma bitte den code für win 2000 und XP her vll kann ich den in meinen prog einbauen wer en schönes tool

Axxus
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Speicheradressen eines Programms finden

  Alt 31. Okt 2006, 18:12
Wozu brauch ich denn DeviceIoControl um belegten Speicher festzustellen? Dazu gibts VirtualQuery, bei passenden Userrechten sogar prozessübergreifend mit VirtualQueryEx. Und zum Lesen reicht ReadProcessMemory, wiederum halt an die Userrechte gekoppelt. Aber das ist auch sinnvoll, da kein Normaluser an den Eingeweiden rumfummeln sollte Ich hab mich aus praktischen Erwägungen bei der Feststellung auf die einzelnen Pages beschraenkt, da der Memory Manager eh nicht mit kleineren Einheiten als einer Page für die Allokierung arbeitet. Entweder ne Page ist da oder halt nicht Wer es noch genauer haben will, kann ja gerne die entsprechenden Kernelstrukturen parsen, dazu war ich bisher zu faul weil ichs noch nie gebraucht hab

Edit: Die passenden Bücher zur Speicherverwaltung unter 9x stehen bei mir zwar im Regal, aber die Zeit ist wohl echt vorbei, für manche Sachen ists ja ganz nett, weil man unter Umständen weniger Aufwand treiben muss, aber ich entwickel trotzdem lieber auf den NT-basierten Systemen, die APIs sind viel umfangreicher und man muss nicht so oft tricksen um etwas zu erreichen
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
Antwort Antwort


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 16:31 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