【发布时间】:2015-06-11 16:57:53
【问题描述】:
如何确定PE文件中特定数据目录的图像地址(文件中的字节偏移)?
例如,给定数据目录如下:
directory 1 RVA: 0x0 Size: 0
directory 2 RVA: 0xaf974 Size: 300
directory 3 RVA: 0xb8000 Size: 22328
directory 4 RVA: 0x0 Size: 0
directory 5 RVA: 0xc0800 Size: 6440
directory 6 RVA: 0xbe000 Size: 27776
directory 7 RVA: 0x91760 Size: 28
directory 8 RVA: 0x0 Size: 0
directory 9 RVA: 0x0 Size: 0
directory 10 RVA: 0x0 Size: 0
directory 11 RVA: 0xa46b8 Size: 64
directory 12 RVA: 0x0 Size: 0
directory 13 RVA: 0x91000 Size: 1736
directory 14 RVA: 0x0 Size: 0
directory 15 RVA: 0x0 Size: 0
directory 16 RVA: 0x0 Size: 0
导入目录(上面的#2)显示为 RVA 为 0xAF974。但是,导入目录不位于 EXE 文件的字节 0xAF974。文件写入磁盘时,如何计算文件中导入目录的字节偏移量?
【问题讨论】:
-
我发布了一些代码,如果您需要更清晰,我很乐意尝试更多解释。甚至写 PE 代码的人都说 RVA 的东西很难理解,但是一旦你有了工作代码,剩下的就很容易了:)
标签: exe binaryfiles portable-executable coff