
Un utilitaire x86 bare-metal pour vider la RAM physique directement sur le disque. Construit et testé pour des expériences d'attaque Cold Boot sur de la mémoire gelée.
Un outil x86 bare-metal simple conçu pour démarrer à partir d'un disque/USB et vider la RAM du système directement sur le support de démarrage. Il utilise les interruptions BIOS pour démarrer et effectuer des opérations disque, et entre en mode irréel (unreal mode) pour accéder à la mémoire au-delà de la barrière de 1 Mo.
Cet outil a été initialement développé et testé avec succès pour expérimenter les attaques par démarrage à froid. En gelant la RAM d'un ordinateur portable (jusqu'à -60°C) et en redémarrant rapidement à partir d'une clé USB contenant cet outil, il est possible de vider le contenu gelé de la mémoire sur le disque avant que les données ne se dégradent, permettant ainsi l'extraction d'informations sensibles comme les clés de chiffrement.
INT 0x15 E820 pour détecter les régions RAM valides et éviter de vider la mémoire réservée ou les entrées-sorties mappées en mémoire.INT 0x13 AH=0x43 (écriture étendue) pour écrire le contenu de la mémoire directement sur le disque de démarrage à partir de LBA 64.stage1.asm est un secteur de démarrage de 512 octets. Il initialise les registres de segment, configure la pile et utilise la lecture étendue (INT 0x13 AH=0x42) pour charger stage2 depuis LBA 1 en mémoire à 0x8000. Ensuite, il saute vers stage2.stage2.asm exécute la logique principale :
INT 0x15 E820.0x90000).Cet outil écrit des données brutes directement sur le disque de démarrage à partir du secteur 64 ! Si vous écrivez ceci sur une clé USB contenant des données importantes, la vidange de la RAM écrasera tout ce qui se trouve à partir de LBA 64. Utilisez une clé USB dédiée et vierge pour cet usage.
Vous aurez besoin d'installer NASM pour compiler ce projet.
Sous Windows, exécutez le script de construction fourni :
build.bat
Sous Linux, vous pouvez exécuter :
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.boot.bin sur une clé USB (par exemple en utilisant dd sous Linux/macOS, ou Rufus / Win32DiskImager sous Windows).
sudo dd if=boot.bin of=/dev/sdX bs=512