工具
esp32_image_parser ESP32 固件镜像解析工具
Tenable 发布的 Python 命令行工具,其仓库简介称之为辅助逆向 ESP32 固件的工具包:它读取 ESP32 闪存转储中的分区表,并将 factory、ota_0 等应用分区重建为 Xtensa ELF 文件。其他操作可列出分区、导出某个分区的原始字节,并将 NVS 分区的键值条目解析为文本或 JSON;create_elf 借助 esptool 载入应用镜像,把其中的闪存、DRAM 和 IRAM 段映射为 ELF 节区,并加入仓库自带 ROM 符号表中的符号。
- 目标
- 固件
- 类别
- 固件工具
- 关联
- 基础工具
- 来源复核于
使用条件与局限
- 自 2020-02-29 起没有新提交,也没有发布版本或标签。安装方式为 pip install -r requirements.txt,其中列出 makeelf、esptool 和 hexdump,均未指定版本;脚本直接导入 esptool 的模块命名空间,并针对初代 esp32 芯片类型调用其 LoadFirmwareImage,因此未核实它与当前 esptool 版本及更新的 ESP32 系列芯片是否兼容。
- 输入为分析者自有设备的完整闪存转储。解析器从默认偏移 0x8000 读取分区表;create_elf 只接受应用类型分区,并需指定输出文件名;RTC IRAM 等无法映射的段只会给出提示,不会被转换。
- 仓库不含任何固件镜像:除 Python 脚本外,只有 symbols_dump.txt,这是一份约 890 个符号的 readelf 格式符号表,大多位于 ESP32 ROM 地址,create_elf 会从当前工作目录读取它并写入每个 ELF。采用 MIT 许可(LICENSE.md)。本次未解析任何闪存转储。
关于此条目
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · tenable/esp32_image_parser · 修订 0c9ff48
- esp32_image_parser.py GitHub · tenable/esp32_image_parser · 修订 0c9ff48
- esp32_firmware_reader.py GitHub · tenable/esp32_image_parser · 修订 0c9ff48
- read_nvs.py GitHub · tenable/esp32_image_parser · 修订 0c9ff48
- requirements.txt GitHub · tenable/esp32_image_parser · 修订 0c9ff48
- symbols_dump.txt GitHub · tenable/esp32_image_parser · 修订 0c9ff48
- LICENSE.md GitHub · tenable/esp32_image_parser · 修订 0c9ff48