| Zeile 2: | Zeile 2: | ||
== Aufbau == | == Aufbau == | ||
=== EXE Header === | === EXE Header === | ||
| − | Dieser Header ist der Basisheader jeder Datei im EXE-Format (auch DLL und andere abgeleitete Dateien), worauf sich der PE-Header aufbaut. Da aber die Informationen für solche Dateien nicht mehr im EXE.Header abgelegt werden, könnte man theoretisch den EXE-Header weglassen. Leider ist dem aber nicht so, weil dieser die Offsetadresse zu unserem PE-Header enthält. | + | Dieser Header ist der Basisheader jeder Datei im EXE-Format (auch DLL und andere abgeleitete Dateien), worauf sich der PE/COFF-Header aufbaut. Da aber die Informationen für solche Dateien nicht mehr im EXE.Header abgelegt werden, könnte man theoretisch den EXE-Header weglassen. Leider ist dem aber nicht so, weil dieser die Offsetadresse zu unserem PE/COFF-Header enthält. |
Die folgende Tabelle zeigt, was noch vom EXE-Header benötigt wird: | Die folgende Tabelle zeigt, was noch vom EXE-Header benötigt wird: | ||
| Zeile 16: | Zeile 16: | ||
|0x0A||50 Bytes||<i>Unbedeutend</i> | |0x0A||50 Bytes||<i>Unbedeutend</i> | ||
|- | |- | ||
| − | |0x3C||2 Bytes||Offset des PE-Header | + | |0x3C||2 Bytes||Offset des PE/COFF-Header |
|- | |- | ||
|0x3E||4 Bytes||<i>Unbedeutend</i> | |0x3E||4 Bytes||<i>Unbedeutend</i> | ||
|} | |} | ||
| + | |||
| + | === MS-DOS-Stub === | ||
| + | Dieser dient nur noch dazu, um unter DOS nur die Meldung auszugeben, dass dieses Programm Windows benötigt. | ||
=== PE Kennzeichnung === | === PE Kennzeichnung === | ||
| Zeile 25: | Zeile 28: | ||
(Zwei Nullbytes am Ende) | (Zwei Nullbytes am Ende) | ||
Das ist wiederum ein Kennzeichen von Windows und sollte verändert (nicht weggelassen) werden. | Das ist wiederum ein Kennzeichen von Windows und sollte verändert (nicht weggelassen) werden. | ||
| + | |||
=== COFF Dateiheader === | === COFF Dateiheader === | ||
Hier ist der Common Object File Format Header: | Hier ist der Common Object File Format Header: | ||