[PEヘッダー]
実行可能ファイルの場合、ファイルの先頭(オフセット 0番地)から始まる
MS-DOSファイルヘッダーに続いてPortable Executable Headerがあります。
下記のとおり、オフセット 0x3cの 1BYTEで指定された
オフセットからPEヘッダーが始まります。
識別マークは "PE\0\0"(50 45 00 00)です。
MS-DOSのスタブ(イメージのみ)
MS-DOSのスタブはMS-DOS上で稼動する有効なアプリケーションで、
.EXEイメージの先頭に置かれます。
リンカはデフォルトのスタブをここに置き、
このイメージをMS-DOS上で実行しようとすると
「This program cannot be run in DOS mode」というメッセージが
出力されるようにします。
ユーザーは/STUBリンカオプションを使って別のスタブを指定することができます。
0x3c 番地にスタブは可搬型実行形式(PE)シグネチャへのオフセットを保持しています。
この情報により、Windows NTは、DOSスタブのあるイメージ ファイルであっても
適切にを実行することができます。
このファイル オフセットはリンク時に 0x3c 番地に置かれます。
シグネチャ(イメージのみ)
MS-DOSスタブの後には、オフセット 0x3c で指定されたオフセットに、
ファイルがPE形式のイメージ ファイルであることを識別するための
4 バイトのシグネチャが置かれます。
この形式はWin32、Posix on Windows NT、およびWindows NTの一部の
デバイスドライバで使用されます。
現在、このシグネチャは "PE\0\0" (文字"P"と"E"の後に2つのヌル文字)です。
出展は
Microsoft(R) Portable ExecutableおよびCommon Object File Format仕様書
Revision 5.0 1997年10月