Microsoft Portable Executable and Common Object File Format — Änderungen 3657 → 3658

Zeile 1: Zeile 1:
−
== Grober Aufbau ==
+
== Aufbau ==
 
=== MS-DOS Header ===
 
=== MS-DOS Header ===
 
Dieser Header ist ein Kompatibilitätsheader, der unter MS-DOS ausgeführt wird und meist eine Fehlermeldung anzeigt, die besagt, dass das Programm Windows benötigt.<br>
 
Dieser Header ist ein Kompatibilitätsheader, der unter MS-DOS ausgeführt wird und meist eine Fehlermeldung anzeigt, die besagt, dass das Programm Windows benötigt.<br>
Zeile 16: Zeile 16:
 
| 0x00 || 2 Bytes || Hier wird beschrieben, für welche Plattform diese aufführbare Datei geeignet ist
 
| 0x00 || 2 Bytes || Hier wird beschrieben, für welche Plattform diese aufführbare Datei geeignet ist
 
|-
 
|-
−
| 0x02 || 2 Bytes || Die Anzahl der Sections
+
| 0x02 || 2 Bytes || Die Anzahl der Sektoren
 
|-
 
|-
 
| 0x04 || 4 Bytes || Die ersten 32bits von der Sekundenanzahl von 1.Januar 1970 00:00 bis zur Erstellung der Datei
 
| 0x04 || 4 Bytes || Die ersten 32bits von der Sekundenanzahl von 1.Januar 1970 00:00 bis zur Erstellung der Datei
Zeile 150: Zeile 150:
 
* Die Adresse der Tabelle relativ zum ersten Sektor der ausführbaren Datei zum Zeitpunkt des Laden der Tabelle
 
* Die Adresse der Tabelle relativ zum ersten Sektor der ausführbaren Datei zum Zeitpunkt des Laden der Tabelle
 
* Ihre Größe in Bytes
 
* Ihre Größe in Bytes
−
 
+
=== Sektorentabelle ===
 +
Die Sektorentabelle kommt immer nach dem optimalen Header. Die Headergröße wird im COFF-Header festgelegt.
 +
Ebenfalls wird die Größe der Tabelle im COFF-Header festgelegt.
 +
Jeder Sektor besteht aus folgenden Abschnitten:
 +
{| {{Prettytable}}
 +
! Offset || Größe || Beschreibung
 +
|-
 +
| 0 || 8 || Ist ein 8-Byte-String auf UTF-8 Basis. Wenn genau 8-Bytes verwendet wird, dann ist kein Nullbyte nötig.
 +
Bei Objektdateien darf dieser länger sein, bei ausführbaren Dateien ist dies verboten.
 +
|-
 +
| 8 || 4 || Die entgültige Größe eines Sektors, wenn es geladen wird. Bei Objektdateien ist dieser Abschnitt voller Nullen.
 +
|-
 +
| 12 || 4 || Für ausführbare Dateien die Adresse des ersten Bytes der Sektion relativ zum Image Basis(?).
 +
Bei Objektdateien ist die Adresse des ersten angelegten Bytes, bevor die Verlagerung abgeschlossen ist.
 +
|}
 +
Wird noch erweitert-
  
 
== Links ==
 
== Links ==