VA和内存地址

时间:2011-04-25 16:41:57

标签: c++ memory-address portable-executable coff

这应该是一个简单的问题:我知道VA = RVA + PE的图像库,现在我试图在反汇编程序中找到一个字符串,恰好位于.text部分的0042720E。

图像库是400000,2720E是RVA,到目前为止还可以。

但是为什么当我在调试器中加载exe时,映射指令的内存是0140720E?

0140720E(我在ram中看到的)和0042720E(VA)因FE0000而异,为什么会这样?我错过了什么吗?

1 个答案:

答案 0 :(得分:4)

实际上只有两种可能性:重新分配或RVA错误。它的重新分配的可能性越大,特别是如果您因为ASLR而在Windows Vista或Windows 7上运行。根据您的连接方式和使用的调试器,可以让调试器调整报告的地址以匹配PE中指定的基本部分加载地址,ollydbg就是其中之一(您必须通过ollydbg启动应用程序,同样适用于DLL)的