如何从 linux shell 访问 BIOS ROM 二进制文件
Posted
技术标签:
【中文标题】如何从 linux shell 访问 BIOS ROM 二进制文件【英文标题】:How to access BIOS ROM binary from linux shell 【发布时间】:2017-09-02 16:39:21 【问题描述】:我希望将ROM中的二进制代码制作成linux中的通用文件。那么该怎么做。 还有ROM访问的内存地址?
【问题讨论】:
也许你不能,也许你不应该。你为什么想要它? Linux一运行,Bios就没用了…… 尝试用dmesg | grep BIOS
提供的信息做一些事情
是为了更好的理解安全
【参考方案1】:
可以读取 ROM BIOS 内容。
当您的代码不在某些受保护模式的操作系统(如 Linux)下时 例如,当您处于引导模式时。当时 ROM BIOS 内容在内存中的 0x000F0000 地址 - 看看 IBM PC 系统架构内存映射:http://wiki.osdev.org/Memory_Map_(x86)。因此,您可以直接从内存中复制您需要的所有内容。如果您只需要学习 ROM BIOS 内容,您可以使用 BIOS 转储实用程序 - 有很多。
您可以查看此实用程序biosdecode
也检查此实用程序flashrom。如果您的系统受支持,您可以通过发出来读取您的 BIOS 内容
flashrom -r outputfile
另一个实用程序是 dmidecode
dmidecode -t bios
从 C:0000 读取内存到 F:FFFF 不需要 dmidecode
示例命令:
dd if=/dev/mem bs=1k skip=768 count=256 2>/dev/null | strings -n 8
【讨论】:
【参考方案2】:获取图片的详细说明可以参考libreboot
docs。在最坏的(我的)情况下,准备拆卸您的设备以连接外部spi
编程器。
我发现这个问题正在寻找一种工具来查看该图像中的内容。 fiano
project 是我需要的。
utk image.rom table
打印image.rom
转储的目录。
【讨论】:
以上是关于如何从 linux shell 访问 BIOS ROM 二进制文件的主要内容,如果未能解决你的问题,请参考以下文章
运行shell脚本报错```$'\r':command not found```
linux hwclock -r显示的HWC TIME(硬件时钟时间)与timedatectl结果中的RTC TIME(实时时钟时间)有什么区别?BIOS时钟源