2012-04-09 11 views
0

Ich untersuche den besten Weg, um einen Speicherauszug (RAM) einer Windows 7-Maschine über eine High-Level-Programmiersprache, z. C#. Ich habe viel darüber geforscht, wie ich unten zusammenfassen werde.Zugriff auf den physikalischen Speicher über eine Hochsprache, z.

• Es scheint, dass Microsoft API Zugriff auf den Speicher wieder einige Zeit abgeschnitten wurde (\ Device \ Physical)

Es ist nun, dass der Zugriff auf den Speicher muss Ihr Code gewinnen erscheint im Kernel ausgeführt werden Modus wie in den Benutzermodus im Gegensatz zu ermöglichen Sie den Speicher

ich ausgesehen haben den Zugriff auf, wie Windows-Dump Speicher (Small, Large & Kernel-Dumps) auf einem System hängen, ist diese Methode für meine Anforderungen nicht geeignet ist

Ich fragte mich, ob jemand eine gute Vorstellung davon hatte, wie ich den physischen Speicher einer Maschine aufrufen sollte. Mein Wissen über Low-Level-Programmiersprachen ist knapp, da ich es gewohnt bin, Fensteranwendungen zu programmieren. Vorschläge, die ich bis jetzt erhalten habe, würden beinhalten, einen Treiber zu schreiben, um auf den Speicher zuzugreifen und diesen dann über eine höhere Programmiersprache aufzurufen.

Jede Hilfe, die jede Gemeinschaft bieten kann, wäre sehr willkommen! Danke im Voraus.

+2

Was werden Sie mit dem Dump machen? Ist procdump -ma nicht ausreichend in Ihrer Umgebung? – GregC

+1

Der Zugriff auf physischen Speicher ist selbst mit Low-Level-Sprachen schwierig. Der Vorschlag, den Sie erhalten haben, ist höchstwahrscheinlich der vernünftigste Ansatz. – Mat

+0

Meine Suche hat mich zu procdump -ma geführt, aber leider erlaubt es Ihnen nur, den Speicher eines einzelnen Prozesses zu löschen. Ich schaue mir den Zugriff auf den gesamten Speicher einschließlich der vom Betriebssystem geladenen Dateien usw. an. Ich wäre dankbar, wenn jemand einen anderen Vorschlag hätte oder, wie Mat erklärte, ich vielleicht die Fahrtroute runtergehen müsste. Mittag & Justin Ich habe auf Ihre Empfehlung reagiert. Prost –

Antwort

0

Verwenden Sie procdump -ma. Dies gibt den vollständigen Zustand eines einzelnen Prozesses an. Überlassen Sie das Debuggen des Betriebssystems den Benutzern im Kernelmodus.

Von meiner eher kurzen Erfahrung mit Kernel-Mode-Debugging mit WinDBG, würde ich empfehlen, mit einem zweiten PC und einer Firewire-Verbindung zu beginnen. Entfernen Sie auf dem getesteten System die Festplatte und installieren Sie das Betriebssystem mit Symbolen. Stellen Sie sicher, dass Sie ein gutes Basis-Image des Betriebssystems mit Symbolen haben, für die Zeit, wenn Sie es brechen.

Auf meiner kurzen Liste von WinDBG Bücher zu lesen ist "Programmierung des Windows-Treibermodells", Oney, MSPress.

This may help.