Microsoft Portable Executable and Common Object File Format

Aus Lowlevel
Version vom 9. Dezember 2008, 17:05 Uhr von Be59 (Diskussion | Beiträge) (→‎COFF Dateiheader)
Wechseln zu:Navigation,

Grober Aufbau

MS-DOS Header

Diese Header ist ein Kompabilitätsheader, womit im MS-DOS ausgedrückt werden kann, dass das Programm darunter nicht läuft.
Für lowlevel kann dieser Bereich getrost ausgelassen werden, weil

  • Programme eines Nicht-Windowssystem brauchen nicht unter MS-DOS zu laufen
  • Fast niemand hat noch MS-DOS

PE Kennzeichnung

An der Stelle 0x3c kommt das Kennzeichnen des PE-Formates. Dieser ist 4-Byte groß und sieht so aus: "PE\0\0". (Zwei Nullbytes am Ende) Das ist wiederum ein Kennzeichen von Windows und sollte verändert(nicht weggelassen) werden.

COFF Dateiheader

Hier ist der Common Object File Format Header:

Offset Größe Beschreibung
0x00h 2 Bytes Hier wird beschrieben, für welche Plattform diese aufführbare Datei geeignet ist.
0x02h 2 Bytes Die Anzahl der Sections.
0x04h 4 Bytes Die ersten 32-Bytes von der Sekundenanzahl ab 1.Januar 1970 00:00, wann die Datei hergestellt wurde.
0x08h 4 Bytes Die Dateioffset dieser COFF-Datei. Wenn Null, dann ist garkeine vorhanden.
0x0Bh 4 Bytes Die Anzahl der Eintragungen von der Symboltabelle.(?)
0x0Fh 2 Bytes Größe des optimalen Headers der ausführbaren Datei. Achtung, ist nicht für die Objektdatei
0x12h 2 Bytes Flags für Eigenschaften der Datei.

Links