1

これは簡単な質問です。私は VA = RVA + PE のイメージベースであることを知っています。逆アセンブラで文字列を見つけようとしているところ、たまたま .text セクションの 0042720E に配置されています。

imagebase は 400000 で 2720E は RVA で、今のところ問題ありません。

しかし、デバッガーで exe をロードすると、命令がマップされているメモリが 0140720E になるのはなぜですか?

0140720E (RAM に表示されるもの) と 0042720E (VA) が FE0000 によって異なるのはなぜですか? 何か不足していますか?

4

1 に答える 1

4

実際には 2 つの可能性しかありません: 再割り当てが行われたか、RVA が間違っているかです。特にASLRのためにWindows VistaまたはWindows 7で実行している場合は、再割り当ての可能性が高くなります。アタッチ方法と使用しているデバッガーに応じて、報告されたアドレスを、PE で指定されたベース セクションのロード アドレスと一致するようにデバッガーに調整させることができます。 dll)

于 2011-04-25T19:01:41.070 に答える