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, so compatibility with current esptool releases and newer ESP32-series chips was not checked.
- 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). No flash dumps were parsed.
About this entry
The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.
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
- ThinkPad IMX471: recovering camera tuning for Linux · Case study