2012-03-08 11 views

答えて

3

RVAは相対仮想アドレス、つまり優先ベースアドレスからの距離です。好ましいベースアドレスはPEヘッダに記載され、実行可能ファイルがメモリにロードされるときのメモリ内のイメージの開始の(好ましい)仮想アドレスである。

ファイルオフセットは、ファイルのどこかに到着するためにPEファイルの先頭から読み取らなければならないバイト数です。したがって、セクションがある場合は、セクションヘッダーにセクションのRVAとファイル内のオフセットの両方が表示されます。一度ロードされた仮想メモリの量とPEファイル内のセクションデータのサイズを示すものの2つのサイズがあります。

PE内の多くの参照は、RVAsとして与えられます。そのような場合、参照のPEファイル内のオフセットを取得するには、すべてのセクションヘッダをチェックインする必要があります(またはある種のマップが必要です)。

+0

rvaをオフセットに変換する他の方法はありますか? – user1232138

+0

相対仮想アドレスと仮想アドレスの違いは何ですか? – user1232138

+0

rvaをオフセットに変換するには、rvaを使ってセクションヘッダを手にして、 "virtual_address"と "virtual_size"フィールドで指定されたrva範囲がrvaを包含するセクションを見つける必要があります。 – dsign