<?xml version="1.0" encoding="utf-8"?>
<PRONOM-Report xmlns="http://pronom.nationalarchives.gov.uk">
  <report_format_detail>
    <FileFormat>
      <FormatID>1704</FormatID>
      <FormatName>Windows Portable Executable</FormatName>
      <FormatVersion>32 bit</FormatVersion>
      <FormatAliases>Common Object File Format, COFF, EXE</FormatAliases>
      <FormatFamilies>
      </FormatFamilies>
      <FormatTypes>
      </FormatTypes>
      <FormatDisclosure>
      </FormatDisclosure>
      <FormatDescription>A Windows Portable Executable (PE) 32-bit is synonymous with a program or application that can be run on Microsoft Windows. An executable is a file-format object that is compiled from source code files written in languages such as C, C++, Golang, or Rust among others. A PE is native to Windows and like other executables or programs, provided a means of distributing applications that performed a certain task or tasks for a specific operating system. Executables are compiled to a certain register width, e.g. 8-bit, 16-bit, 32-bit or 64-bit; which impacts the size of variables in memory, and may impact compatibilty on older or newer versions of an operating system, respectively. A PE 32-bit is compiled to a 32-bit architecture and so will not run on 16-bit architectures, and may require the existence of compatibility middleware on a 64-bit system to run there. Executables might require external libraries or configuration to function and so the technical environment needed to run an executable should be documented and understood in order to preserve functionality over time, and to protect future potential users of these files. The Windows Portable Executable format is used for the 'executable' component of a program, as well as external libraries such as dynamic link libraries (DLLs) other potential extensions are listed as '.acm, .ax, .cpl, .dll, .drv, .efi, .exe, .mui, .ocx, .scr, .sys, .tsp, .mun') (https://en.wikipedia.org/w/index.php?title=Portable_Executable&amp;oldid=1182679182). Despite the name, PE files will not run on other operating systems such as MacOS and Linux. Application programs must be compiled to a specific operating system architecture to run on different environments.</FormatDescription>
      <BinaryFileFormat>
      </BinaryFileFormat>
      <ByteOrders>
      </ByteOrders>
      <ReleaseDate>
      </ReleaseDate>
      <WithdrawnDate>
      </WithdrawnDate>
      <ProvenanceSourceID>214</ProvenanceSourceID>
      <ProvenanceName>Archives New Zealand / Archives New Zealand</ProvenanceName>
      <ProvenanceSourceDate>21 Jun 2016</ProvenanceSourceDate>
      <ProvenanceDescription>04/2024 (v.117): Description added as part of PRONOM Research Week 2023. Submitted by Ross Spencer</ProvenanceDescription>
      <LastUpdatedDate>22 Apr 2024</LastUpdatedDate>
      <FormatNote>This specification describes the structure of executable (image) files and object files under the Windows family of operating systems. These files are referred to as Portable Executable (PE) and Common Object File Format (COFF) files, respectively- https://learn.microsoft.com/en-us/windows/win32/debug/pe-format</FormatNote>
      <FormatRisk>
      </FormatRisk>
      <TechnicalEnvironment>
      </TechnicalEnvironment>
      <FileFormatIdentifier>
        <Identifier>application/vnd.microsoft.portable-executable</Identifier>
        <IdentifierType>MIME</IdentifierType>
      </FileFormatIdentifier>
      <FileFormatIdentifier>
        <Identifier>com.microsoft.windows-executable</Identifier>
        <IdentifierType>Apple Uniform Type Identifier</IdentifierType>
      </FileFormatIdentifier>
      <FileFormatIdentifier>
        <Identifier>fmt/899</Identifier>
        <IdentifierType>PUID</IdentifierType>
      </FileFormatIdentifier>
      <Developers>
        <DeveloperID>93</DeveloperID>
        <DeveloperName>
        </DeveloperName>
        <OrganisationName>Microsoft Corporation</OrganisationName>
        <DeveloperCompoundName>Microsoft Corporation</DeveloperCompoundName>
      </Developers>
      <Support>
        <SupportID>93</SupportID>
        <SupportName>
        </SupportName>
        <OrganisationName>Microsoft Corporation</OrganisationName>
        <SupportCompoundName>Microsoft Corporation</SupportCompoundName>
      </Support>
      <Document>
        <DocumentID>94</DocumentID>
        <DisplayText>Portable Executable Format</DisplayText>
        <DocumentType>Authoritative</DocumentType>
        <AvailabilityDescription>Public</AvailabilityDescription>
        <AvailabilityNote>https://learn.microsoft.com/en-us/windows/win32/debug/pe-format</AvailabilityNote>
        <PublicationDate>25 Feb 2023</PublicationDate>
        <TitleText>Portable Executable Format</TitleText>
        <DocumentIPR>
        </DocumentIPR>
        <DocumentNote>This specification describes the structure of executable (image) files and object files under the Windows family of operating systems. These files are referred to as Portable Executable (PE) and Common Object File Format (COFF) files, respectively.</DocumentNote>
      </Document>
      <ExternalSignature>
        <ExternalSignatureID>1838</ExternalSignatureID>
        <Signature>exe</Signature>
        <SignatureType>File extension</SignatureType>
      </ExternalSignature>
      <ExternalSignature>
        <ExternalSignatureID>1839</ExternalSignatureID>
        <Signature>dll</Signature>
        <SignatureType>File extension</SignatureType>
      </ExternalSignature>
      <ExternalSignature>
        <ExternalSignatureID>1840</ExternalSignatureID>
        <Signature>sys</Signature>
        <SignatureType>File extension</SignatureType>
      </ExternalSignature>
      <InternalSignature>
        <SignatureID>1249</SignatureID>
        <SignatureName>Windows Portable Executable 32 bit</SignatureName>
        <SignatureNote>DWORD Signature; 
IMAGE_FILE_HEADER FileHeader;
IMAGE_OPTIONAL_HEADER OptionalHeader;</SignatureNote>
        <ByteSequence>
          <ByteSequenceID>1520</ByteSequenceID>
          <PositionType>Absolute from BOF</PositionType>
          <Offset>0</Offset>
          <MaxOffset>0</MaxOffset>
          <IndirectOffsetLocation>
          </IndirectOffsetLocation>
          <IndirectOffsetLength>
          </IndirectOffsetLength>
          <Endianness>
          </Endianness>
          <ByteSequenceValue>4D5A{126-128500}50450000{20}0B01{66}[0000:1000]</ByteSequenceValue>
        </ByteSequence>
      </InternalSignature>
      <RelatedFormat>
        <RelationshipType>Has lower priority than</RelationshipType>
        <RelatedFormatID>2645</RelatedFormatID>
        <RelatedFormatName>Asymetrix Toolbook File</RelatedFormatName>
        <RelatedFormatVersion>6-11.5</RelatedFormatVersion>
      </RelatedFormat>
      <RelatedFormat>
        <RelationshipType>Has priority over</RelationshipType>
        <RelatedFormatID>774</RelatedFormatID>
        <RelatedFormatName>MS-DOS Executable</RelatedFormatName>
        <RelatedFormatVersion>
        </RelatedFormatVersion>
      </RelatedFormat>
      <RelatedFormat>
        <RelationshipType>Has priority over</RelationshipType>
        <RelatedFormatID>775</RelatedFormatID>
        <RelatedFormatName>Windows New Executable</RelatedFormatName>
        <RelatedFormatVersion>
        </RelatedFormatVersion>
      </RelatedFormat>
      <RelatedFormat>
        <RelationshipType>Has priority over</RelationshipType>
        <RelatedFormatID>776</RelatedFormatID>
        <RelatedFormatName>Windows Portable Executable</RelatedFormatName>
        <RelatedFormatVersion>
        </RelatedFormatVersion>
      </RelatedFormat>
    </FileFormat>
    <SearchCriteria>Criteria</SearchCriteria>
  </report_format_detail>
</PRONOM-Report>
