m4b / goblin

An impish, cross-platform binary parsing crate, written in Rust
MIT License
1.18k stars 158 forks source link

Add Terse Executable (TE) support to goblin #398

Closed Javagedes closed 6 months ago

Javagedes commented 6 months ago

I would like to request the addition of Terse Executable (TE) support to goblin's PE module. a terse executable is simply a PE/PE32+ binary with the header replaced with a terse executable header (as defined in the PI specification: [TE}(https://uefi.org/specs/PI/1.8/V1_TE_Image.html). The TE header is a subset of values from the PE/PE32+ header and are the only fields necessary for the binary to be properly executed by a PI architecture compliant loader and executor. Terse executables are most commonly used by UEFI compliant firmware to reduce the overall size of the binary in firmware.

If willing to add this support, I have created #397 for you to review and provide feedback on. I am open to changing implementation (such as having it be it's own module rather than a subset of the PE module (like PeCoff). As the maintainers, I look to you for details such as these.

Thanks for your time :)