
Утилита для x86 на bare-metal, предназначенная для сброса физической оперативной памяти напрямую на диск. Создана и протестирована для экспериментов по атаке при холодной перезагрузке (Cold Boot Attack) на замороженной памяти.
Простой инструмент x86 bare-metal, предназначенный для загрузки с диска/USB и прямого дампа ОЗУ системы на загрузочный носитель. Он использует прерывания BIOS для загрузки и выполнения дисковых операций, а также переходит в unreal mode для доступа к памяти выше 1 МБ.
Этот инструмент был изначально разработан и успешно протестирован для экспериментов с атаками холодной перезагрузки. Заморозив ОЗУ ноутбука (до -60°C) и быстро перезагрузившись с USB-накопителя, содержащего этот инструмент, можно сбросить содержимое замороженной памяти на диск до того, как данные распадутся, что позволяет извлечь конфиденциальную информацию, такую как ключи шифрования.
INT 0x15 E820 для обнаружения допустимых областей ОЗУ и избегания дампа зарезервированной памяти или memory-mapped I/O.INT 0x13 AH=0x43 (Extended Write) для прямой записи содержимого памяти обратно на загрузочный диск, начиная с LBA 64.stage1.asm — это 512-байтовый загрузочный сектор. Он инициализирует сегментные регистры, настраивает стек и использует Extended Read (INT 0x13 AH=0x42) для загрузки stage2 из LBA 1 в память по адресу 0x8000. Затем он переходит к stage2.stage2.asm выполняет основную логику:
INT 0x15 E820.0x90000).Этот инструмент записывает сырые данные непосредственно на загрузочный диск, начиная с сектора 64! Если вы запишете его на USB-накопитель, содержащий важные данные, дамп ОЗУ перезапишет всё, что находится на LBA 64 и далее. Используйте для этой цели выделенный пустой USB-флеш-накопитель.
Для компиляции этого проекта потребуется установленный NASM.
В Windows запустите предоставленный скрипт сборки:
build.bat
В Linux вы можете выполнить:
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 на USB-накопитель (например, с помощью dd в Linux/macOS, или Rufus / Win32DiskImager в Windows).
sudo dd if=boot.bin of=/dev/sdX bs=512