VA和内存地址

发布于 2024-11-03 09:31:14 字数 249 浏览 6 评论 0原文

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

imagebase是400000,2720E是RVA,目前还可以。

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

0140720E(我在ram中看到的)和0042720E(VA)与FE0000不同,为什么呢?我错过了什么吗?

This should be a simple question: I know that VA = RVA + imagebase for a PE, now I'm trying to locate in a disassembler a string and happens to be located at 0042720E in the .text section.

The imagebase is 400000 and 2720E is the RVA, it is okay till now.

But why when I load the exe in a debugger the memory where the instruction is mapped is 0140720E ?

0140720E (what I see in ram) and 0042720E (the VA) differs by FE0000, why is that? Am I missing something?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

毁虫ゝ 2024-11-10 09:31:14

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

There are really only two possibilities: a reallocation occured or you got the RVA wrong. The more likely is its a reallocation, especially if your running on windows vista or windows 7 due to ASLR. Depending on how you attached and what debugger your using, its possible to get the debugger to adjust the reported addresses to match the base section load addresses specified in the PE, ollydbg is one of these (you must start the app through ollydbg, same for dlls)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文