Tool
esp32_image_parser
Tenable's Python command-line tool, described in its repository as a toolkit for reverse engineering ESP32 firmware, that reads the partition table of an ESP32 flash dump and rebuilds an app partition such as factory or ota_0 as an Xtensa ELF file. Other actions list the partitions, dump a partition's raw bytes and parse an NVS partition's key-value entries as text or JSON; create_elf loads the app image with esptool, maps its flash, DRAM and IRAM segments to ELF sections and adds symbols from a bundled ROM symbol table.
- Targets
- Firmware
- Category
- Firmware tools
- Relationship
- Foundation tool
- Sources reviewed
Requirements & limits
- No commits since 2020-02-29 and no releases or tags. Setup is pip install -r requirements.txt, which lists makeelf, esptool and hexdump without versions; the script imports esptool's module namespace and calls its LoadFirmwareImage for the original esp32 chip type.
- Input is a full flash dump from the analyst's own device. The parser reads the partition table at the default 0x8000 offset, and create_elf accepts only app-type partitions and needs an output file name; segments it cannot map, such as RTC IRAM, are reported rather than converted.
- The repository commits no firmware images: besides the Python scripts it holds symbols_dump.txt, a readelf-style table of about 890 symbols mostly at ESP32 ROM addresses, which create_elf reads from the current working directory into every ELF. MIT licensed (LICENSE.md).
About this entry
The description was reviewed against primary sources.
Primary sources
- README.md GitHub · tenable/esp32_image_parser · Revision 0c9ff48
- esp32_image_parser.py GitHub · tenable/esp32_image_parser · Revision 0c9ff48
- esp32_firmware_reader.py GitHub · tenable/esp32_image_parser · Revision 0c9ff48
- read_nvs.py GitHub · tenable/esp32_image_parser · Revision 0c9ff48
- requirements.txt GitHub · tenable/esp32_image_parser · Revision 0c9ff48
- symbols_dump.txt GitHub · tenable/esp32_image_parser · Revision 0c9ff48
- LICENSE.md GitHub · tenable/esp32_image_parser · Revision 0c9ff48
More in Firmware and hardware
- Tigard · Tool
- UBI Reader · Tool
- payload-dumper-go · Tool
- mithril · Tool
- img4tool · Tool
- payload dumper · Tool