名前 |
機能説明 |
イメージファイル |
実行ファイルは、.EXEファイルまたは.DLLファイルです。イメージファイルは「メモリ上のイメージ」であると考えることができます。「イメージファイル」という言葉は通常「実行可能ファイル」の代わりに使われます。というのは、後者はしばしば.EXEファイルだけを意味するからです。 |
オブジェクトファイル |
リンカへの入力として渡されるファイルです。リンカはイメージファイルを作成し、今度はこれがローダへの入力として使われます。「オブジェクトファイル」という用語には必ずしもオブジェクト指向プログラミングとの関連があるわけではありません。 |
RVA |
相対仮想アドレスRelative Virtual Address 。あるイメージファイルにおいて、RVAは常に「いったんメモリにロードされた」項目のアドレスで、イメージファイルのベースアドレスはそれから引かれます。 項目のRVAは、ほとんど常にディスク上のそのファイル内の位置(ファイルポインタ)と異なっています。オブジェクトファイル内では、RVAはあまり意味を持ちません。これは、メモリ位置が割り当てられていないためです。この場合、RVA はセクション(下記参照)内のアドレスとなります。これに対する再配置は、後で、リンク時に行われます。単純化のために、コンパイラは各セクションの最初のRVA をゼロにセットします。 |
仮想アドレス(VA) |
イメージファイルのベースアドレスが引かれないことを除けばRVA(上記参照)と同じです。このアドレスは「仮想アドレス」と呼ばれます。これは、 Windows NTが各プロセスのために、物理メモリとは独立の、個別の仮想アドレス空間を作成するためです。ほとんどすべての目的で、仮想アドレスは単なるアドレスと見なされます。仮想アドレスは RVAほど予測可能ではありません。これは、ローダがイメージをその望みの場所にロードするとは限らないためです。 |
ファイルポインタ |
リンカ(オブジェクトファイルの場合)やローダ(イメージファイルの場合)によって処理される前のファイル自体の内部における項目の位置。いいかえれば、ディスク上に格納されているファイル内での位置。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 (0x20) |
OEM識別子
OEM情報 PEヘッダへのオフセット |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|