工具

sniffROM 串行闪存被动嗅探重建工具

通过被动总线抓包重建串行闪存内容的 Python 工具:它解析 Saleae Logic 的 SPI 或 I²C 分析器导出文件(这些数据记录了设备读写自身闪存芯片的过程),并把观察到的数据按原始内存地址写入二进制镜像。它可识别 Winbond、Macronix、Spansion、GigaDevice 等厂商的 100 多条 SPI 闪存命令,目前可解析其中 12 条,能报告 JEDEC ID 读取中出现的厂商和设备 ID,还可输出命令摘要、显示已捕获地址范围的可视化分布图,并绘制读写操作的时序图。

使用条件与局限

  • 没有发布版本或标签;脚本最后一次修改是在 2020 年 7 月。README 于 2023-12-07 添加的说明称,Saleae Logic 2 破坏了 sniffROM 所依赖的 SPI 分析器导出功能,因此目前只能处理从 Logic 1.x 导出的数据,且不清楚何时会修复。
  • 这是单个 Python 2 脚本(使用 print 语句),数据分布图和时序图需要 matplotlib;README 的用法说明中将其称为 sniffROM_new.py。输入为 Saleae Logic 的 SPI 或 I²C 分析器导出的 CSV 文件,可选择 2、3 或 4 字节的 SPI 地址长度、字节序,以及只分析读命令或只分析写命令。
  • 抓包需要将 Saleae 逻辑分析仪连接到分析者获准检查的设备的闪存总线上;wiki 的 Getting Started 页面引用了一篇外部指南来说明抓包过程。只能恢复设备在抓包期间访问过的数据,未观察到的字节以填充值补齐;wiki 中启动阶段的 SPI 示例分别捕获了重建镜像的约 29% 和 42%。
  • 采用 GPL-3.0(见 COPYING)。仓库还存放了所支持的 SPI 和 I²C 芯片的厂商数据手册 PDF 以及 commands.xlsx 命令表;这些数据手册仍属各厂商。仓库未提交任何固件镜像或总线抓包数据,本次审阅也未运行任何组件。

关于此条目

类型
工具
类别
固件工具
关联
基础工具
目标
固件 · 协议

来源复核于

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

报告条目过时 建议修正翻译

一手来源

  1. README.md GitHub · alainiamburg/sniffROM · 修订 a32be61
  2. sniffROM.py GitHub · alainiamburg/sniffROM · 修订 a32be61
  3. COPYING GitHub · alainiamburg/sniffROM · 修订 a32be61
  4. SPI/datasheets GitHub · alainiamburg/sniffROM · 修订 a32be61
  5. https://github.com/alainiamburg/sniffROM/wiki/Home/2172a35b47fab5ee4adc5703b7c0de64857f68f0
  6. https://github.com/alainiamburg/sniffROM/wiki/Getting-Started/63cbaca6d5519a70ead845ef28a19757dd01f41a
  7. https://github.com/alainiamburg/sniffROM/wiki/Usage-Examples/1b18e9bde42895386caaf2f1c74e07a6605a2208

同分区更多条目:固件与硬件

固件与硬件分区全部 44 项资源