3 ms·
Regarding standards, the Terse Executable (TE) is part of the UEFI Platform Initialization Specification https://uefi.org/specs/PI/1.8/V1_TE_Image.html https://
by the_panopticon 3y ago
Regarding standards, the Terse Executable (TE) is part of the UEFI Platform Initialization Specification https://uefi.org/specs/PI/1.8/V1_TE_Image.html https://uefi.org/specs/PI/1.8/V1_TE_Image.html now.
From "Beyond BIOS" https://www.degruyter.com/document/doi/10.1515/9781501505690/html?lang=en https://www.degruyter.com/document/doi/10.1515/9781501505690...:
"The advantages of having TE as a subset of PE include the ability to use standard, available tools, such as linkers, which can be used during the development process. Only during the final phases of the FV image creation does the tool chain need to convert the PE image into a TE. This similarity extends to the headers and the relocation records. In order to have an in-situ agent, such as a debugger nub, distinguish between the PE and TE images, the signature field has been slightly modified. For the PE, the signature is “MZ” for Mark Zbikowski, the designer of the Microsoft DOS† image format, the origin of the PE/COFF image. For the TE image, the signature is “VZ”, as found at the end of Volume 1 of the UEFI PI specification:
#define EFI_TE_IMAGE_HEADER_SIGNATURE 0x5A56 // "VZ"
This one character difference allows for sharing of debug scripts and code that only need to distinguish between the PE and TE via this one character of the signature field. Although the development and design team eschewed use of proper names in code or the resultant binaries, the “VZ” and “Vincent Zimmer” association appeared harmless, especially given the interoperability advantages."