santtos0x1/firmware-dump-analysis

GitHub: santtos0x1/firmware-dump-analysis

基于 ESP32 的主板 SPI Flash 固件提取与逆向分析工具,覆盖从硬件读取到结构解析的完整流程。

Stars: 1 | Forks: 0

# SPI-Sentinel:主板固件提取与分析 ![平台](https://img.shields.io/badge/platform-ESP32-blue) ![框架](https://img.shields.io/badge/framework-ESP--IDF-red) ![安全](https://img.shields.io/badge/focus-Reverse%20Engineering-lightgrey) ## 📌 项目概述 本项目主要关注如何使用基于 ESP32 的读取器从主板上提取和分析 SPI Flash 存储器。 目标是获取原始固件数据,研究其内部结构,并识别诸如文件头、重复区域以及可能的固件组件等模式。该项目结合了底层硬件接口与数据分析技术,旨在更好地理解嵌入式系统如何存储和组织信息。 ![硬件设置](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/9b326be4e8040952.jpg) *图 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** 进行代码分析,以映射初始化向量和跳转表。 ![启发式模式发现](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/584e01d2c7040954.jpg) *图 2:在 ImHex 中识别内存偏移量和签名模式。* ## 🛠️ 技术栈 * **固件:** C (ESP-IDF),用于实现高性能的 SPI 吞吐量。 * **分析工具:** * **ImHex:** 用于十六进制结构可视化和模式标记。 * **Cutter/Rizin:** 用于 x86(16/32位)反汇编和反编译。 ## 🔍 主要发现 ![签名检查](/docs/images/check_signature.jpg) *图 3:Cutter 中的签名检查代码。* ## 🚀 未来路线图 - [ ] 分析固件数据区域和微代码。 ## ⚠️ 免责声明 本项目严格用于教育目的和安全研究。未经授权访问硬件或固件可能会使保修失效或违反服务条款。
标签:AMIBIOS, Bit-banging, Cloudflare Workers, ESP32, ESP-IDF, ImHex, PE文件提取, SecList, SPI闪存, UEFI, 主板BIOS, 二进制分析, 云安全运维, 云资产清单, 内存取证, 固件分析, 固件提取, 固件结构分析, 客户端加密, 嵌入式系统, 底层安全, 数据模式分析, 物联网安全, 硬件SPI, 硬件安全, 硬件接口, 硬件黑客, 逆向工程, 配置审计