2016-03-21 6 views
2

および_IMAGE_OPTIONAL_HEADER64definitionsによると、AddressOfEntryPointは、PE32およびPE64ファイル形式の場合、32ビットのDWORDです。64ビット移植可能な実行可能ファイルのエントリポイントアドレスが32ビットのみであるのはなぜですか?

なぜAddressOfEntryPointが唯一の32ビットPE64ファイルのためにあるのですか?仮想アドレス空間全体をカバーするのに64ビットでなければならないのでしょうか?あなたがリンクする

+0

セクションは基本的なOSの制限である4 GBを超えることはできません。だから32ビットで十分です。 –

答えて

2

ドキュメントは言う:

画像ベースアドレスに対するエントリポイント関数へのポインタ。ベース・アドレスに対して相対ビーイング

、これは、画像がどこのアドレス空間に配置することができることを意味します。

これは間接的に、エントリポイントが4GBを超えるベースアドレスからのオフセットを持つことはできないことを意味しますが、これに限定されるものではありません。他の理由から、PEイメージのサイズは4GBを超えることはできません。たとえば、SizeOfImageDWORDで、画像サイズが4GBに制限されています。

関連する問題