copyleftdev/reflow

GitHub: copyleftdev/reflow

一款基于熵引导与图分析的 UEFI 固件解析与 NVRAM 提取工具。

Stars: 0 | Forks: 0

# 重新流动 用 Rust 编写的 UEFI 固件 ROM 解析器和 NVRAM 提取器。 解析 Intel SPI 闪存镜像,提取固件卷、NVRAM 变量以及 DXE/SMM 模块。在不依赖任何格式假设的前提下,使用熵分析、马尔可夫字节转移模型和小波分析对未知区域进行分类。 从 [efi_fuzz](https://github.com/Sentinel-One/efi_fuzz) 重写的解析流水线。 ## 安装 ``` cargo install --path . ``` ## 用法 ``` reflow parse rom.bin # dump full structure reflow nvram rom.bin --output nvram/ # extract NVRAM variables reflow entropy rom.bin --json # entropy heatmap reflow depex rom.bin --dot > deps.dot # dependency graph (Graphviz) reflow corpus rom.bin --output afl_inputs/ # fuzzing corpus from NVRAM reflow modules rom.bin --json # modules ranked by centrality ``` ## 解析内容 - **Flash 布局** — Intel Flash Descriptor 区域(BIOS、ME、GbE、PDR) - **固件卷** — FFS2/FFS3 文件系统,嵌套卷 - **FFS 文件** — PE32 可执行文件、DEPEX 依赖项、UI 名称 - **NVRAM 变量** — NVAR 格式(AMI、Phoenix、Insyde) - **压缩** — EFI 1.1 Tiano(LZ77+Huffman)与 LZMA - **DEPEX** — 基于栈的依赖字节码,通过拓扑排序与介数中心性进行完整图分析 ## 分类能力(无需解析) 熵与统计方法在任何格式特定解析器运行前识别区域: | 熵(比特/字节) | 卡方检验 | 分类 | |-----------------|----------|------| | ~0.0 | 任意 | 填充(0x00/0xFF) | | 1.0–4.0 | 高 | 结构化数据(NVRAM、GUID) | | 4.0–6.5 | 高 | 机器代码(x86/ARM) | | 7.0–7.9 | > 500 | 压缩(LZMA、Tiano) | | 7.99+ | ~256 | 加密或随机数据 | 附加分类器:马尔可夫字节转移指纹(基于 KL 散度与参考模型对比)、ACF/抖动谱分析用于重复结构检测、Haar 小波分解用于多尺度边界检测。 ## 真实固件测试 在 OVMF、MinnowBoard 与 Dell SPI 闪存转储上进行验证。包含 271 项测试,涵盖确定性模拟测试与种子化 PRNG 对抗输入生成。 ``` cargo test ``` ## 许可证 MIT
标签:DEPEX, efi_fuzz, FFS2, FFS3, Graphviz, GUID, Haar 小波, Huffman, Intel SPI 闪存, KL散度, LZ77, LZMA, NVRAM 提取, PE32, ROM 解析, Rust 重写, SEO: NVRAM 提取工具, SEO: UEFI 固件解析器, SEO: 熵引导区域分类, UEFI, 中心性, 介数中心性, 依赖图, 加密检测, 压缩算法, 可视化界面, 固件解析, 图分析, 字节转移模型, 拓扑排序, 无格式假设, 模糊测试语料, 熵分析, 熵热图, 统计分类, 通知系统, 随机数据检测, 频谱分析, 马尔可夫模型