2012-01-21 9 views
2

すべてのセクションはではありませんはPEローダーによってロードされていますか?または、セクションヘッダーに指定されたセクションがすべてロードされていますか? ELFプログラムでは、ロードされると思われるセクションヘッダー(呼び出されたプログラムヘッダーまたはセグメント)は、PT_LOADというフラグが立てられています。 PEプログラムに類似したものはありますか?PEローダーによってロードされないセクションは何ですか?

PS。私は旗IMAGE_SCN_MEM_DISCARDABLEを見つけました。そのセクションにフラグが立てられていないかどうか

+2

これはどのように動作しないのですか?ファイル全体がメモリマップされます。メモリページにアクセスするまで、何もロードされません。 –

+1

そうです。何もロードされていません。ページは要求に応じてロードされますが、ページフォルトが発生します。 –

+1

技術的には、必要に応じてすべての単一ページにアクセスできますか?そして、私が答えとしてマークすることができる答えを提供してください:) –

答えて

3

再配置セクションが使用可能でPEイメージを再配置する必要がない場合、ローダは再配置セクションをロードしません。 PEイメージがデジタル署名されている場合は、証明書を含むセクションがあります。このセクションはローダーによってロードされません。さらに、デバッグセクションが使用可能な場合、これもローダーによってロードされません。

+0

また、DOSスタブもロードされません。それは単純にローダーによって無視されています。いくつかのマルウェアは、それを悪用して、この領域に自分のものを入れます。 – mox

0

まあ、DOSスタブはセクションではありません!

一般に、PEファイルの一部は読み込み可能ですが、メモリにマップされません(再配置など)。また、一部の部分はまったくマッピングされていません。このような状況の一例として、ファイルの最後にデバッグ情報があります。

通常、ファイルの末尾に配置されたデータ(ファイル内の任意の部分(マップされたい))はメモリにマップされません。