Gibt es eine Möglichkeit, den Inhalt des RAM-Speichers anzuzeigen? Vom ersten bis zum letzten Byte. Ich würde gerne sehen, wo sich das Betriebssystem und alle darauf laufenden Prozesse im RAM befinden. Ist das möglich?
Gibt es eine Möglichkeit, den Inhalt des RAM-Speichers anzuzeigen? Vom ersten bis zum letzten Byte. Ich würde gerne sehen, wo sich das Betriebssystem und alle darauf laufenden Prozesse im RAM befinden. Ist das möglich?
Antworten:
Sie könnten einen Kernel-Debugger verwenden, der einen " unformatierten " Speicherzugriff ermöglicht, wie z . B. SoftICE für Windows . Sie können GDB auch so konfigurieren, dass es als Debugger für den Linux-Kernel fungiert . Wenn eine virtuelle Maschine optional ist, unterstützt eine Virtualisierungssoftware das Speichern des Maschinenzustands (einschließlich RAM) auf der Festplatte, die dann weiter analysiert werden kann . Es ist jedoch zu beachten, dass die meisten "modernen" Betriebssysteme die Adressraum-Layout-Randomisierung (ASLR) verwenden. Die echte physische Speicherzuordnung des Systems ist absichtlich fragmentiert, um verschiedene Sicherheitsprobleme und Exploits (z. B. Stapel- / Heap- Pufferüberläufe) zu minimieren.
Für ein bestimmtes Programm, das in einem modernen Betriebssystem ausgeführt wird, können Sie jedoch eine logische Speicherzuordnung für einen bestimmten Prozess / Thread erhalten - vorausgesetzt, Sie verfügen über die entsprechenden Debugsymbole und den entsprechenden Debugger. Wenn Sie eine Gesamtansicht wünschen, wenn die Software / Hardware virtuellen Speicher verwendet , wird die Situation drastisch komplexer. Wenn Sie jedoch buchstäblich möchten, was sich nur im RAM befindet, lesen Sie den ersten Absatz.
Auf den Inhalt des physischen Speichers kann unter Windows über das \Device\PhysicalMemory
Objekt im Objekt-Manager zugegriffen werden . Dies erfordert einen Zugriff auf das System auf Kernel-Ebene. Dies bedeutet, dass Sie ein Programm, höchstwahrscheinlich einen Kernel-Modus-Treiber, installieren müssen, um auf dieses Objekt zuzugreifen.
Unter Linux kann auf den Inhalt des physischen Speichers direkt als Binärdaten zugegriffen werden, indem /dev/mem
als gelesen wird root
. Siehe Was ist / dev / mem? und die mem(4)
Manpage für mehr Details.
Ich bin mir nicht sicher, warum Sie bestimmen müssen, wo sich das Betriebssystem und die Prozesse im physischen Speicher befinden ...
\DevicePhysicalMemory
Objekt nicht im Benutzermodus geöffnet werden. RAMmap und die meisten anderen Sysinternals-Tools enthalten einen Kernel-Modustreiber, der diesen Teil ihrer Arbeit erledigt.