santtos0x1/firmware-dump-analysis
GitHub: santtos0x1/firmware-dump-analysis
基于 ESP32 的主板 SPI Flash 固件提取与逆向分析工具,覆盖从硬件读取到结构解析的完整流程。
Stars: 1 | Forks: 0
# SPI-Sentinel:主板固件提取与分析



## 📌 项目概述
本项目主要关注如何使用基于 ESP32 的读取器从主板上提取和分析 SPI Flash 存储器。
目标是获取原始固件数据,研究其内部结构,并识别诸如文件头、重复区域以及可能的固件组件等模式。该项目结合了底层硬件接口与数据分析技术,旨在更好地理解嵌入式系统如何存储和组织信息。

*图 1:用于 Out-of-Band SPI 提取的 ESP32 硬件接口。*
## 🧠 技术深入解析
### 硬件接口
系统利用 **ESP-IDF SPI Master 驱动** 与 Flash 芯片进行通信。我们获得了固件的逐位原样镜像。
### 结构发现
我们对原始转储数据的分析揭示了几个关键的组件:
* **遗留文件头:** 检测到 `AMIBIOS`、`AMIJPG` 和 `AMIBOOT` 签名,从而确定供应商为 American Megatrends。
* **可执行文件恢复:** 识别并提取了嵌入在 ROM 中的有效 **PE (Portable Executable)** 文件。
* **签名逻辑:** 发现了扫描 `AMIBIOS` 签名的启发式代码,并在匹配时实现了 2048 位(256 字节)的指针递减,这很可能用于内存对齐。
## 📊 分析流程
1. **提取:** ESP32 通过 bit-banging 或硬件 SPI 转储 SPI Flash。
2. **获取:** 通过 ImHex 处理二进制数据。
3. **解构:** 识别 `MZ` (DOS) 和 `PE` (Windows/UEFI) 文件头。
4. **逆向工程:** 使用 **Cutter** 进行代码分析,以映射初始化向量和跳转表。

*图 2:在 ImHex 中识别内存偏移量和签名模式。*
## 🛠️ 技术栈
* **固件:** C (ESP-IDF),用于实现高性能的 SPI 吞吐量。
* **分析工具:**
* **ImHex:** 用于十六进制结构可视化和模式标记。
* **Cutter/Rizin:** 用于 x86(16/32位)反汇编和反编译。
## 🔍 主要发现

*图 3:Cutter 中的签名检查代码。*
## 🚀 未来路线图
- [ ] 分析固件数据区域和微代码。
## ⚠️ 免责声明
本项目严格用于教育目的和安全研究。未经授权访问硬件或固件可能会使保修失效或违反服务条款。
标签:AMIBIOS, Bit-banging, Cloudflare Workers, ESP32, ESP-IDF, ImHex, PE文件提取, SecList, SPI闪存, UEFI, 主板BIOS, 二进制分析, 云安全运维, 云资产清单, 内存取证, 固件分析, 固件提取, 固件结构分析, 客户端加密, 嵌入式系统, 底层安全, 数据模式分析, 物联网安全, 硬件SPI, 硬件安全, 硬件接口, 硬件黑客, 逆向工程, 配置审计