3.4.3 オプション ヘッダのデータ ディクショナリ(イメージのみ)

各データ ディクショナリは、Windows NTによって使用されるテーブルまたは文字列のアドレスとサイズを与えます。これらはすべてメモリにロードされ、システムによって実行時に使用できるようになります。データ ディクショナリは、以下のように宣言される8バイトのフィールドです。

typedef struct _IMAGE_DATA_DIRECTORY {
    DWORD   RVA;
    DWORD   Size;
} IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY;
最初のフィールドはRVAで、これはテーブルの相対仮想アドレスです。RVAはテーブルのアドレスで、ロード時には、イメージのベース アドレスに相対です。2番目のフィールドは、サイズをバイト単位で与えます。オプション ヘッダの最後の部分をなすデータ ディクショナリのリストを以下に示します。

ディレクトリの数は固定されていません。オプション ヘッダのNumberOfRvaAndSizesフィールドは、特定のディレクトリを探す前にチェックされなければなりません。

このテーブルに与えられているRVAがセクションの始まりを指していることや、特定のテーブルを含んでいるセクションは特定の名前を持つことを仮定してはなりません。

オフセット サイズ フィールド 解説
96 8 Export Table エクスポート テーブルのアドレスとサイズ
104 8 Import Table インポート テーブルのアドレスとサイズ
112 8 Resource Table リソース テーブルのアドレスとサイズ
120 8 Exception Table 例外テーブルのアドレスとサイズ
128 8 Certificate Table 属性認証テーブルのアドレスとサイズ
136 8 Base Relocation Table ベース再配置テーブルのアドレスとサイズ
144 8 Debug デバッグ データの開始アドレスとサイズ
152 8 Architecture アーキテクチャ固有データのアドレスとサイズ
160 8 Global Ptr グローバル ポインタ レジスタの相対仮想アドレス。この構造体のサイズ メンバは0にセットされます。
168 8 TLS Table スレッド ローカル ストレージ(TLS)テーブルのアドレスとサイズ
176 8 Load Config Table ロード コンフィグレーション テーブルのアドレスとサイズ
184 8 Bound Import バウンド インポート テーブルのアドレスとサイズ
192 8 IAT インポート アドレス テーブルのアドレスとサイズ
200 8 Delay Import Descriptor 遅延インポート記述子のアドレスとサイズ
208 16 Reserved

認証テーブル エントリは属性認証のテーブルを指します。これらの認証はイメージの一部としてはメモリにロードされません。したがって、このエントリの最初のフィールドは、通常はRVAのところがファイル ポインタになっています。


戻る