BareMetal RAM Dumper – 用于冷启动攻击实验的裸机x86工具

Hacker News Top 工具

摘要

一个用于通过冷启动攻击将系统RAM转储到引导介质的裸机x86工具,对安全研究和实验有用。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/07/04 18:41

pIat0n/BareMetal-RAM-Dumper

来源:https://github.com/pIat0n/BareMetal-RAM-Dumper

BareMetal RAM Dumper(裸机内存转储工具)

一个简单的 x86 裸机工具,设计用于从磁盘/U盘启动并将系统 RAM 直接转储到启动介质。它依赖 BIOS 中断进行引导和磁盘操作,并进入 Unreal 模式以访问 1MB 屏障以上的内存。

背景:冷启动攻击 ❄️

该工具最初是为实验 冷启动攻击 而开发并成功测试的。将笔记本电脑的 RAM 冷冻(降至 -60°C)后,迅速从包含此工具的 U 盘重启,即可在数据衰减之前将冻结的内存内容转储到磁盘,从而提取出加密密钥等敏感信息。

特性

  • 自定义引导程序: 直接从 BIOS(传统 CSM)启动,无需操作系统。
  • Unreal 模式: 临时切换到 Unreal 模式以访问和读取 32 位物理内存地址。
  • 内存映射解析: 使用 BIOS INT 0x15 E820 检测有效的 RAM 区域,避免转储保留内存或内存映射 I/O。
  • 直接磁盘写入: 使用 BIOS INT 0x13 AH=0x43(扩展写入)将内存内容直接写回启动盘的 LBA 64 起始位置。

工作原理

  1. stage1.asm 是一个 512 字节的引导扇区。它初始化段寄存器、设置栈,并使用扩展读取(INT 0x13 AH=0x42)将 stage2 从 LBA 1 加载到内存 0x8000 处,然后跳转到 stage2
  2. stage2.asm 执行主要逻辑:
    • 查询 BIOS 是否支持 EDD(增强磁盘驱动)。
    • 使用 INT 0x15 E820 获取内存映射。
    • 计算最大 RAM 大小。
    • 以 32KB 块为单位循环遍历 RAM。
    • 对每个块,切换到 Unreal 模式,将高位内存中的数据复制到低位内存缓冲区(0x90000)。
    • 使用扩展写入将 32KB 块写入磁盘,起始于 LBA 64。
    • 在屏幕上打印进度百分比。

警告 ⚠️

该工具会从扇区 64 开始,将原始数据直接写入启动盘!
如果你将此工具写入一个含有重要数据的 U 盘,RAM 转储将覆盖 LBA 64 及之后的所有内容。请为此使用专用的空白 U 盘。

构建

你需要安装 NASM(https://www.nasm.us/)来编译此项目。

在 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

使用方法

  1. 构建项目,生成 boot.bin
  2. boot.bin 写入 U 盘(例如在 Linux/macOS 上使用 dd,在 Windows 上使用 Rufus 或 Win32DiskImager)。
    • 注意: 确保 U 盘的容量足够容纳你系统的 RAM。
    • 示例(Linux): sudo dd if=boot.bin of=/dev/sdX bs=512
  3. 从该 U 盘启动目标 PC(确保启用了传统 BIOS / CSM 引导)。
  4. 等待转储完成(将显示 100%)。

相似文章

DRAM 意面化

Hacker News Top

一种安全研究工具,利用 AMD CPU 上的 DRAM 地址加扰来解锁隐藏的平台功能(如 PSP、SMM、C6 和微码),展示了深度的硬件级攻击。

某些x86 CPU中的硬件后门

Hacker News Top

安全研究人员Domas揭示了rosenbridge,这是VIA C3 x86 CPU中的一个硬件后门,允许非特权代码绕过处理器保护并访问内核内存。该存储库提供了检查并缓解此漏洞的工具。

usbliter8 - Apple A12/A13 bootROM漏洞利用

Lobsters Hottest

本文详细介绍了苹果A12/A13 SoC中一种新颖的bootROM漏洞,该漏洞利用USB控制器中的硬件缺陷和配置缺陷,从而破坏了启动链。文中还提供了一个概念验证。

CP/M-68K 模拟器

Lobsters Hottest

一位业余开发者创建了一个适用于Motorola 68000 CPU的模拟器,可运行CP/M-68K,支持自定义BIOS和RAM磁盘;源代码已在GitHub和GitLab上提供。

objdump -g 中的任意代码执行

Lobsters Hottest

objdump -g 中存在一个安全漏洞,由于 FR30 重定位处理程序缺少边界检查,通过精心构造的 FR30 目标文件可实现任意代码执行,单个漏洞利用即可绕过 ASLR 及其他缓解措施。