PE-Header

PE-Header

Portable Executable beschreibt ein Binärformat ausführbarer Programme. Es ist das Dateiformat, das bei Win32- und Win64-Systemen für ausführbare Dateien verwendet wird.

Mögliche Dateiendungen sind zum Beispiel:

Außer der Erweiterung .exe, die eine Datei als eigenständiges Programm identifiziert, ist das PE-Format nicht an eine Erweiterung gebunden. Programmiertechnisch kann das System dazu gebracht werden, Code in jeder im PE-Format vorliegenden Datei auszuführen.

DLL-Dateien können beispielsweise Funktionen exportieren, die von anderen Programmen aufgerufen werden. Bei DRV- und SYS-Dateien handelt es sich in der Regel um Gerätetreiber, welche von Windows verwendet werden, um die Hardware anzusteuern.

Neben Windows verwendet auch ReactOS das PE-Dateiformat und ermöglicht so (zur Zeit nur sehr beschränkt) die Ausführung von Windows-Programmen. Frühe Versionen von BeOS sowie SkyOS verwendeten ebenfalls das PE-Dateiformat für ihre ausführbaren Programme. Da sie aber eine andere Programmierschnittstelle (API) verwendeten, waren sie nicht binärkompatibel zu Windows und beabsichtigten dies auch gar nicht. SkyOS verwendet inzwischen das verbreitete ELF-Format, welches zuvor mit dem Betriebssystem Linux populär wurde, da es dort das Standardformat für Binärprogramme ist.

Windows-Dateien im PE-Format lassen sich unter Linux mit Hilfe von WINE, und unter DOS teilweise mit Hilfe des HX DOS Extenders ausführen.

Aufbau

Jede PE-Datei beginnt, um eine gewisse Abwärtskompatibilität zu gewährleisten, mit dem aus DOS-Zeiten bekannten MZ-Header. Obwohl es deshalb technisch möglich ist, eine für Windows kompilierte Datei unter einer DOS-Version auszuführen, wird das nur von sehr wenigen Programmen (zum Beispiel dem Setup-Programm von Windows 95) tatsächlich unterstützt und die meisten Programme brechen mit der Meldung "This Program cannot be run in DOS Mode" (oder ähnlich) ab, wenn sie unter einem inkompatiblen Betriebssystem ausgeführt werden. Eine PE-Datei beginnt daher, gleich wie eine DOS-Exe, mit den zwei Buchstaben "MZ" (den Initialen von Mark Zbikowski, dem Entwickler des DOS-Programmformats), lässt sich aber in der Regel durch genau diesen Fehlermeldungsstring am Anfang der Datei von einer solchen unterscheiden.

Das letzte Feld im DOS-Header verweist auf die Position des PE-Headers, der dann auch mit der ASCII-Kennung "PE" beginnt.

Der eigentliche PE-Header besteht aus zwei Teilen, dem IMAGE_FILE_HEADER, der die Anzahl der Segmente, den erforderlichen CPU-Typ sowie ein paar Flags enthält, sowie dem IMAGE_OPTIONAL_HEADER (der aber nicht optional ist). Dieser enthält unter anderem die Größe der einzelnen Code- und Datensegmente in der Datei, sowie weitere Angaben über die benötigten Ressourcen (Speicher, Betriebssystemversion).

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужна курсовая?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Header — (von engl. head = Kopf) ist ein englisches Wort mit der Bedeutung Kopf, Kopfdaten, Einleitung, Vorspann. In der Informationstechnik werden Nutzdaten ergänzende Zusatzinformationen – so genannte Metadaten – am Anfang eines Datenblocks häufig als… …   Deutsch Wikipedia

  • Header checksum — refers to the basic protection used in the header of IP packets against data corruption. This checksum is calculated only for the header bytes and is 16 bit long and is a part of the IP packet header. This checksum is calculated by word aligning… …   Wikipedia

  • Header-Injection — ist eine Klasse von Sicherheitslücken in Webanwendungen, welche auftreten, wenn die Header eines Protokolls dynamisch unter Hinzunahme von unzureichend geprüften Benutzereingaben generiert werden. Header Injection in HTTP kann z. B. zu HTTP… …   Deutsch Wikipedia

  • Header (informatique) — En technologie de l information, le header renvoie aux données contenues au début d un bloc de contenu à stocker ou transmettre. En transmission de données, les données qui suivent le header sont souvent appelées charge utile ou body. Sommaire 1… …   Wikipédia en Français

  • Header — may refer to:* Header (information technology), supplemental data at the beginning of a data block * Header file, a text file used in computer programming (especially in C or C++) * Page header, in printing or typography the material separated… …   Wikipedia

  • Header Check Sequence — Header Sequence Number is basically a CRC of the MAC header. It shall be the remainder of the division (modulo 2) by the generator polynomial multiplied by the content of the header excluding the HCS field.The HCS can be a byte long (as in Wimax) …   Wikipedia

  • Header-Datei —   [dt. »Kopfdatei«], eine Datei, die in verschiedenen Programmiersprachen, z. B. in C bzw. C++, Definitionen und Deklarationen enthält, die zur Kompilierung und Ausführung des Programms benötigt werden. Eine Header Datei legt beispielsweise fest …   Universal-Lexikon

  • Header Error Check — ist ein Prüfverfahren bei der Übertragungstechnik Asynchronous Transfer Mode (ATM), mit dem festgestellt wird, ob eine ATM Zelle richtig empfangen wurde. Dazu enthält der Kopf der ATM Zelle (Header) im fünften und letzten Byte eine… …   Deutsch Wikipedia

  • Header — Head er (h[e^]d [ e]r), n. 1. One who, or that which, heads nails, rivets, etc., esp. a machine for heading. [1913 Webster] 2. One who heads a movement, a party, or a mob; head; chief; leader. [R.] [1913 Webster] 3. (Arch.) (a) A brick or stone… …   The Collaborative International Dictionary of English

  • Header File —   [engl.], Header Datei …   Universal-Lexikon

  • header — head‧er [ˈhedə ǁ ər] noun [countable] the line of information at the top of a computer screen or a printed page compare footer * * * header UK US /ˈhedər/ noun [C] ► IT a line of text, such as a title or a page number, that appears at the top of… …   Financial and business terms

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”