工具
Pawn Intel 平台 BIOS 固件提取工具
Google 发布的 Linux 命令行工具,可从基于 Intel 平台的工作站和笔记本电脑的 SPI 闪存中读出 BIOS/UEFI 固件镜像。它以 root 权限运行,通过 PCI 识别芯片组的 LPC 桥,借助 /dev/mem 映射芯片组的根复合体寄存器,并报告读到的闪存描述符分区以及 BIOS 写保护和读保护设置。随后它通过 SPI 控制器的硬件时序读取闪存,写入单个镜像文件;README 建议再用 UEFITool 等工具进一步处理。
使用条件与局限
- v0.1 和 v0.2 两个版本分别于 2017-08-30 和 2017-09-09 发布,均附带 Debian amd64 软件包及其源码;所审阅的 main 提交日期为 2026-02-17,更新了依赖和 GitHub Actions,版本号仍为 0.2。README 声明 Pawn 不是 Google 的官方产品。构建需要 x86_64 上的 Linux(README 称 FreeBSD 或许也可行)、CMake 3.31+、GCC 或 Clang 7+ 以及 Ninja 或 Make;CMake 会按固定提交拉取 Abseil,测试时另拉取 GoogleTest。CI 在 Ubuntu 24.04 上构建并运行单元测试,生成的二进制文件仅作为工作流产物保留。
- 需在要读取固件的机器上以 root 权限运行,通过 I/O 端口访问 PCI 配置空间并使用 /dev/mem。对于高于 4.8.4 的 Linux 内核,README 要求设置 CONFIG_IO_DEVMEM=n 或以 iomem=relaxed 启动;程序自身的错误提示写的是 IO_STRICT_DEVMEM。只能识别 Intel ICH8、ICH9、ICH10 以及 6 至 9 系列芯片组,其中最新的是 9 系列,源码引用的其数据手册日期为 2014 年 5 月;BIOS 必须以描述符模式从 SPI 闪存启动。
- 它总是从闪存地址 0 读取 16 MiB,超出此大小的闪存内容不会被转储,读取失败的数据块也会被忽略;默认输出文件名为 bios_via_spi_hs.bin。仓库只包含源码、构建文件和 Debian 打包文件,不含任何固件镜像;转储得到的是机器厂商的固件,仍受厂商权利约束。
- 采用 Apache-2.0 许可。本次未构建或运行任何内容,所审来源也未确立与 REA 的关联。
关于此条目
- 类型
- 工具
- 类别
- 固件工具
- 关联
- 基础工具
- 目标
- 固件
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · google/pawn · 修订 45b7b38
- pawn/pawn.cc GitHub · google/pawn · 修订 45b7b38
- pawn/chipset.cc GitHub · google/pawn · 修订 45b7b38
- pawn/chipset_intel_9_series.h GitHub · google/pawn · 修订 45b7b38
- CMakeLists.txt GitHub · google/pawn · 修订 45b7b38
- cmake/PawnDeps.cmake GitHub · google/pawn · 修订 45b7b38
- .github/workflows/ubuntu-cmake.yml GitHub · google/pawn · 修订 45b7b38
- debian/changelog GitHub · google/pawn · 修订 45b7b38
- LICENSE GitHub · google/pawn · 修订 45b7b38
- https://github.com/google/pawn/releases/tag/v0.2