
Un'utilità x86 bare-metal per scaricare la RAM fisica direttamente su disco. Realizzata e testata per esperimenti di Cold Boot Attack su memoria congelata.
Un semplice strumento bare-metal x86 progettato per avviarsi da un disco/USB e scaricare la RAM del sistema direttamente sul supporto di avvio. Si basa sugli interrupt del BIOS per avviarsi ed eseguire operazioni su disco, e entra in unreal mode per accedere alla memoria oltre la barriera di 1 MB.
Questo strumento è stato originariamente sviluppato e testato con successo per sperimentare con Attacchi Cold Boot. Congelando la RAM di un laptop (fino a -60°C) e riavviando rapidamente da un'unità USB contenente questo strumento, è possibile scaricare il contenuto della memoria congelata sul disco prima che i dati decadano, consentendo l'estrazione di informazioni sensibili come chiavi di crittografia.
INT 0x15 E820 per rilevare regioni RAM valide ed evitare di scaricare memoria riservata o memoria mappata I/O.INT 0x13 AH=0x43 (Extended Write) per scrivere i contenuti della memoria direttamente sul disco di avvio a partire da LBA 64.stage1.asm è un settore di boot di 512 byte. Inizializza i registri di segmento, imposta lo stack e utilizza la lettura estesa (INT 0x13 AH=0x42) per caricare stage2 da LBA 1 in memoria all'indirizzo 0x8000. Quindi salta a stage2.stage2.asm esegue la logica principale:
INT 0x15 E820.0x90000).Questo strumento scrive dati grezzi direttamente sul disco di avvio a partire dal settore 64! Se scrivi questo su un'unità USB contenente dati importanti, il dump della RAM sovrascriverà tutto ciò che è presente a LBA 64 e oltre. Utilizza una chiavetta USB dedicata e vuota per questo scopo.
Avrai bisogno di NASM installato per compilare questo progetto.
Su Windows, esegui lo script di build fornito:
build.bat
Su Linux, puoi eseguire:
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 su un'unità USB (ad esempio usando dd su Linux/macOS, o Rufus / Win32DiskImager su Windows).
sudo dd if=boot.bin of=/dev/sdX bs=512