Frage zum PE/COFF-Dateiformat



  • Hallo,

    ich habe vor kurzem ein kleines Programm (.exe-Datei) in Assembler geschrieben. Jetzt habe ich die fertige EXE-Datei in einem Hex-Editor geöffnet. Ich will verstehen wie Programme, bzw. EXE-Dateien aufgebaut sind und wo sich meine Daten und Befehle aus dem Assembler-Programm befinden.

    Um den Aufbau einer EXE-Datei zu verstehen, habe ich mir von Microsoft die Dokumentation mit dem Titel "Microsoft Portable Executable and Common Object File Format Specification" heruntergeladen.

    Ziemlich weit am Anfang in dieser Dokumentation steht folgender Satz:

    This specification describes the structure of executable (image) files and object files used by Microsoft products. These files are referred to as Portable Executable (PE) and Common Object File Format (COFF) files, respectively.

    Ich verstehe die zwei Sätze eigentlich ganz gut, jedoch verstehe ich nicht was "executable (image) files" genau bedeuten soll. Wofür steht das Wort "image" ?

    Könnt ihr mir da weiterhelfen ?

    Vielen Dank,
    MfG arenas



  • Das Wörtchen "image" heißt hier "Abbild". Der (Maschinen-)Code in PE-Dateien landet 1:1 im Speicher und wird vom Betriebssystem-Lader nur noch bezüglich der Adressen angepasst. Eine Interpretation des Inhalts wie bei Bytecode oder Scripten findet nicht statt. Die Einschränkung war notwendig, da es sich (leider) eingebürgert hatte, auch die Letztgenannten als "executables" bzw. "ausführbare Datei" zu bezeichnen (instruktiv: die Wikipedia-Artikel in Deutsch und Englisch dazu).

    viele grüße
    ralph



  • In Version 6.0 der Spezifikation steht entsprechendes

    Image File

    Executable file: either a .EXE file or a DLL. An image file can be thought of as a "memory image". The term "image file" is usually used instead of "executable file", because the latter sometimes is taken to mean only a .EXE file.


Log in to reply