1

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

镜像库是400000,2720E是RVA,到现在还可以。

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

0140720E(我在 ram 中看到的)和 0042720E(VA)相差 FE0000,这是为什么呢?我错过了什么吗?

4

1 回答 1

4

实际上只有两种可能性:发生了重新分配,或者您弄错了 RVA。更有可能是它的重新分配,特别是如果您由于 ASLR 而在 windows vista 或 windows 7 上运行。根据您连接的方式和使用的调试器,可以让调试器调整报告的地址以匹配 PE 中指定的基本部分加载地址,ollydbg 就是其中之一(您必须通过 ollydbg 启动应用程序,对于dll)

于 2011-04-25T19:01:41.070 回答