Entwickler-Ecke

Windows API - Arbeitspeicher Inhalt speichern.


JoachimQ - Di 22.04.03 15:04
Titel: Arbeitspeicher Inhalt speichern.
:arrow: Ich möchte ein Programm schreiben mit dem man den Arbeitsspeicherinhalt speichern kann und später wieder herstellen kann; wie ist dies möglich. Ich freue mich auf eure Beiträge.


Alibi - Di 22.04.03 15:32

Den kompletten RAM speichern und später wieder aufrufen?
Nette Idee, aber das wird schwer, sehr schwer umzusetzen.
Du müsstest das komplette OS im Ram praktisch überschreiben. Wie willst du das ohne OS machen? ;)


JoachimQ - Di 22.04.03 16:04
Titel: Speicher inhalt speichern/wiederherstellen.
:?: Weiß jemand wie dies möglich ist?


mb - Di 22.04.03 16:09

Wenn Du kein neues Betriebssystem schreiben willst: Nur wenn Du ein unsicheres System (alte DOS Version) verwendest oder eine Sicherheitslücke in einem angeblich sicheren System findest...

sonst: schreibe ein eigenes Betriebssystem - dann kannst Du mit Deinem Vorhaben den "Ruhezustand" nachprogrammieren ;-)


Motzi - Di 22.04.03 17:43
Titel: Re: Arbeitspeicher Inhalt speichern.
JoachimQ hat folgendes geschrieben:
:arrow: Ich möchte ein Programm schreiben mit dem man den Arbeitsspeicherinhalt speichern kann und später wieder herstellen kann; wie ist dies möglich. Ich freue mich auf eure Beiträge.

Von deinem Prog oder vom gesamten System..?


MSCH - Di 22.04.03 17:44

sofern du Windows der neuen Generation nutzt ist das schon eingebaut. Ansonsten würd die das schwerfallen, da du auch Zugriff auf geschützten Speicher brauchst, deren Position und so weiter.

grez.
msch


JoachimQ - Do 24.04.03 09:40

Also ich möchte den ganzen Arbeitsspeicher speichern. Ein eigenes Betriebsystem kann ich nicht schreiben; nur die Windowoberflächte könnte ich durch meine eigene ersetzen. Könnte man den Speicher über DOS wieder herstellen??? Ich brauche ein kleines Programm, das mir alle offnen Prozesse und Fenster anzeigt.


mb - Do 24.04.03 10:23

Zitat:
Könnte man den Speicher über DOS wieder herstellen???

Nein. Du kommst definitiv nicht an den gesamten Speicher heran, es sei denn Du verwendest entweder DOS (oder ein anderes unsicheres Betriebssystem) selbst oder schreibst ein neues eigenes. Oder Du findest eine Sicherheitslücke - müsste aber eine ziemlich große sein, die Dir dein Vorhaben erlaubt ;-)

Zitat:
Ich brauche ein kleines Programm, das mir alle offnen Prozesse und Fenster anzeigt.

Das ist ja nun schon wieder ein ganz anderes Problem. Die Prozesse kannst Du ermitteln. Schau Dir mal die API an; z.B. u.a. "ENUM..."
...oder seh Dich nach fertigen Komponenten zu diesem Thema um.

Wenn Du willst, dass Dir mehrere auf diese Frage im Forum antworten, solltest Du diese neue Frage besser unter eigenem Topic neu erstellen.


Delete - Do 24.04.03 12:58

JoachimQ hat folgendes geschrieben:
Ich brauche ein kleines Programm, das mir alle offnen Prozesse und Fenster anzeigt.

Und warum willst du dann den Arbeitsspeicher speichern? :roll:

Siehe meien SysInfo und EnumWindows. Mit dem einem Bekommst du alle Prozesse (und alle geladenen Module gratis als Zugabe) und dem anderem alle Fenster. Source ist dabei.


Motzi - Do 24.04.03 13:00

Selbst wenn du den gesamten Arbeitsspeicher speicherst bringt dir das nicht viel, da der VMM (Virtual Memory Manager) in eigener Regie verwaltet welche Daten im RAM und welche in der Swap-Datei landen! Wenn du also etwas derartiges proggen willst müsstest du nicht nur den RAM sondern auch die Swap-Datei speichern!


mb - Do 24.04.03 13:22

Du wirst nicht auf den ganzen Arbeitsspeicher zugreifen können, egal ob Pagefile (virtueller Speicher) oder den Hardware-Arbeitsspeicher.

Die Sicherheitskonzepte moderner Betriebssysteme lassen Dich immer nur auf Speicherbereiche zugreifen, die für das eigene Programm reserviert wurden. Sonst könntest Du ja einfach den Arbeitsspeicherinhalt eines anderen Programmes ändern. Das ging unter DOS noch, unter Windows, Unix/Linux, MacOS, ... ist das nicht möglich.

Zudem müsstest Du im Kernel-Mode arbeiten, um Zugriff zu anderen Speicherbereichen zu haben. Dein Programm - welches Du auch immer schreibst - wird normalerweise (bis auf einige Systemaufrufe) im User-Mode arbeiten.