2

1)dllのdumpbin出力で、コードセクションの下に属性「仮想アドレス」が表示されます。

セクションヘッダー#1

.text名

100C virtual size
1000 virtual address (1C001000 to 1C00200B)
1200 size of raw data
 400 file pointer to raw data (00000400 to 000015FF)
   0 file pointer to relocation table
   0 file pointer to line numbers
   0 number of relocations
   0 number of line numbers

60000020フラグ

      Code

     Execute Read

scn2

scn1

2)スクリーンショットScn2.png(添付)はscn1.png(添付)の左側部分です。

私の質問は、上記の属性の仮想アドレス範囲(1C001000〜1C00200B)は、スクリーンショット(添付)のように赤い円で囲まれたオフセット(有効アドレス)に他なりませんか?

4

1 に答える 1

1

通常、技術的には(Portable Executable仕様に関して)、仮想アドレス属性は、MEMORYでイメージがロードされるImageBaseからのセクションのオフセットです(これはASLRに依存するポイントでもあります)。

ダンピンなどの一部のツールは、結果を自動的に計算し、イメージベースに追加した結果の仮想アドレスを表示します。この場合、そうです、「範囲はオフセット(実効アドレス)に他なりません」!

于 2013-01-15T16:38:30.957 に答える