【问题标题】:"virtual address" in dumpbin output of a dlldll的dumpbin输出中的“虚拟地址”
【发布时间】:2012-12-29 19:40:56
【问题描述】:

1) 在 dll 的 dumpbin 输出中,我在代码部分看到下面的属性“虚拟地址”

第 1 节标题

.文本名称

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

2) 截图 Scn2.png(附件)是 scn1.png(附件)的左侧部分。

我的问题是, 上面的属性虚拟地址范围(1C001000 到 1C00200B)是不是根据截图(附上)红圈中的偏移量(有效地址)?

【问题讨论】:

  • 请告诉我,如果dumpbin 32位dll输出的虚拟地址与上面截图中红圈中提到的地址相同。

标签: c assembly operating-system computer-architecture


【解决方案1】:

通常,技术上(就 Portable Executable 规范而言),Virtual Address 属性是 MEMORY 中将要加载 Image 的部分与 ImageBase 的偏移量(这也是取决于 ASLR 的点) .

某些工具,例如 dumpin,会自动计算结果并显示添加到 Image Base 中的虚拟地址。在这种情况下,是的,您是对的,“范围不过是偏移量(有效地址)”!

【讨论】:

  • 和图片库是由os loader决定的?
  • 当你说 ASLR 时,我没听懂你。你能帮帮我吗?
  • 也就是说,尽管由于 ASLR 导致图像库发生变化,但 dumpbin 输出中的“虚拟地址”值仍然有效?谁决定镜像库,是操作系统加载器吗?
  • Dumpbin 是一个静态分析工具。它不处理任何 ASLR 问题,因为任何解析的二进制文件并未真正映射。 ASLR 是一个动态问题,由操作系统(加载程序)处理和解决(在需要时)。
猜你喜欢
  • 2011-08-20
  • 2021-07-25
  • 1970-01-01
  • 2011-01-11
  • 2018-07-09
  • 2019-12-06
  • 1970-01-01
  • 1970-01-01
  • 2012-11-06
相关资源
最近更新 更多