
Ein Bare-Metal-x86-Dienstprogramm zum direkten Auslagern des physischen RAMs auf die Festplatte. Entwickelt und getestet für Cold-Boot-Angriffsexperimente auf eingefrorenem Speicher.
Ein einfaches x86 Bare-Metal-Tool, das entwickelt wurde, um von einer Festplatte/einem USB zu booten und den Arbeitsspeicher des Systems direkt auf das Bootmedium zu sichern. Es verwendet BIOS-Interrupts zum Booten und für Festplattenoperationen und wechselt in den Unreal-Modus, um auf Speicher oberhalb der 1-MB-Grenze zuzugreifen.
Dieses Tool wurde ursprünglich für Experimente mit Kaltstart-Angriffen entwickelt und erfolgreich getestet. Durch das Einfrieren des Arbeitsspeichers eines Laptops (auf bis zu -60°C) und einen schnellen Neustart von einem USB-Laufwerk mit diesem Tool können die eingefrorenen Speicherinhalte auf die Festplatte gesichert werden, bevor die Daten zerfallen. Dies ermöglicht die Extraktion sensibler Informationen wie Verschlüsselungsschlüssel.
INT 0x15 E820, um gültige RAM-Bereiche zu erkennen und reservierte Speicherbereiche oder Memory-Mapped I/O auszusparen.INT 0x13 AH=0x43 (Extended Write), um die Speicherinhalte direkt ab LBA 64 auf das Bootlaufwerk zu schreiben.stage1.asm ist ein 512-Byte-Bootsektor. Er initialisiert die Segmentregister, richtet den Stack ein und lädt stage2 mittels Extended Read (INT 0x13 AH=0x42) von LBA 1 in den Speicher an Adresse 0x8000. Anschließend springt er zu stage2.stage2.asm führt die Hauptlogik aus:
INT 0x15 E820 ab.0x90000) zu kopieren.Dieses Tool schreibt Rohdaten direkt ab Sektor 64 auf das Bootlaufwerk! Wenn Sie dies auf einem USB-Laufwerk mit wichtigen Daten ausführen, überschreibt der RAM-Dump alles, was ab LBA 64 vorhanden ist. Verwenden Sie einen dedizierten, leeren USB-Stick für diesen Zweck.
Sie benötigen NASM, um dieses Projekt zu kompilieren.
Unter Windows führen Sie das bereitgestellte Build-Skript aus:
build.bat
Unter Linux können Sie Folgendes ausführen:
nasm -f bin stage1.asm -o stage1.bin
nasm -f bin stage2.asm -o stage2.bin
cat stage1.bin stage2.bin > boot.bin
boot.bin zu erzeugen.boot.bin auf ein USB-Laufwerk (z. B. mit dd unter Linux/macOS oder Rufus / Win32DiskImager unter Windows).
sudo dd if=boot.bin of=/dev/sdX bs=512