Portable Executable


Portable Executable

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. Es basiert auf dem COFF-Binärformat [1].

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 (zurzeit 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 den erwähnten Fehlermeldungsstring in der Nähe des Dateianfangs von einem echten DOS-Programm 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).

Einzelnachweise

  1. http://support.microsoft.com/?id=121460

Weblinks


Wikimedia Foundation.

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

  • Portable Executable — File Format Le format de fichier PE (Portable Executable File Format) est un format de fichier binaire informatique utilisé pour l enregistrement de code compilé (exécutable, bibliothèques). Il a été développé par Microsoft pour les fichiers… …   Wikipédia en Français

  • Portable Executable — Not to be confused with Portable application. Portable Executable Filename extension .cpl, .exe, .dll, .ocx, .sys, .scr, .drv Developed by Microsoft Type of format Binary, executable, object, shared libraries …   Wikipedia

  • Portable Executable — Переносимый исполняемый файл Расширение .exe, .dll, .ocx, .sys, .scr, .drv, .cpl Сигнатура MZ (опционально), PE Разработан Microsoft Тип формата двоичный, исполняемый, объектный …   Википедия

  • Portable Executable File Format — Portable Executable Extension .cpl, .exe, .dll, .ocx, .sys, .scr, .drv Type de format Binaire, Exécutable, Code Objet, DLL Extension du MZ DOS Executable COF …   Wikipédia en Français

  • Exécutable Windows — Portable Executable File Format Le format de fichier PE (Portable Executable File Format) est un format de fichier binaire informatique utilisé pour l enregistrement de code compilé (exécutable, bibliothèques). Il a été développé par Microsoft… …   Wikipédia en Français

  • Executable compression — is any means of compressing an executable file and combining the compressed data with the decompression code it needs into a single executable.Running a compressed executable essentially unpacks the original executable code, then transfers… …   Wikipedia

  • Executable And Linking Format — ELF (Executable and Linking Format) est un format de fichier informatique binaire utilisé pour l enregistrement de code compilé (objets, exécutables, bibliothèques de fonctions). Il a été développé par l’USL (Unix System Laboratories) pour… …   Wikipédia en Français

  • Executable and Linkable Format — Executable and Linking Format ELF (Executable and Linking Format) est un format de fichier informatique binaire utilisé pour l enregistrement de code compilé (objets, exécutables, bibliothèques de fonctions). Il a été développé par l’USL (Unix… …   Wikipédia en Français

  • Executable and Linking Format — Extension aucune, .o, .so, .exe, .elf Développé par Unix System Laboratories Type de format Format de fichier exécutable Spécification Format ouvert …   Wikipédia en Français

  • Executable and linking format — ELF (Executable and Linking Format) est un format de fichier informatique binaire utilisé pour l enregistrement de code compilé (objets, exécutables, bibliothèques de fonctions). Il a été développé par l’USL (Unix System Laboratories) pour… …   Wikipédia en Français