Portable Executable

Portable Executable (PE, PE/COFF, PE32, PE32+) is a member of the EXE family of executable file formats. It is used by the Microsoft Windows family of operating systems (starting with Windows 95 and Win32s), EFI and sometimes in other environments. It is an extension/hybrid of MS-DOS EXE, and a successor to NE. Parts of it are derived from COFF.

Despite the name, not all PE files are executable. Some contain only icons, fonts, etc.

Formats

 * PE32 format is used by 32-bit Windows.
 * PE32+ format is used by 64-bit Windows.

Identification
A PE file begins with the ASCII signature " ". At offset 60 is a 4-byte integer pointing to an "extended" header that begins with. For more information, see MS-DOS EXE.

Specifications and technical information

 * Microsoft PE and COFF Specification
 * PE, from the OSDev Wiki
 * Article on the PE format as used by Windows NT 3, by Johannes Plachy
 * PE (corkami.com)
 * PE102 - a Windows executable format overview
 * PE101 - a Windows executable walkthrough
 * The Undocumented Microsoft "Rich" Header

Software and tools

 * EXE Explorer utility
 * PortEx Analyzer
 * pelook
 * ImpLib SDK

Other links

 * Wikipedia article
 * Forensics Wiki: Portable Executable Format
 * Converting PEiD Signatures To YARA Rules