在COFF文件格式中,重定位信息部分的意义是什么?

udp*_*nil 4 coff

我正在阅读COFF文件格式,它通常用于创建可执行文件格式(它也有一些变体).

在阅读时,我遇到了格式的重定位部分.如何使用此重定位部分创建可执行文件.

如果你指出一些可以帮助我的链接,那将非常有用.

Sco*_*ski 7

实际上,COFF有两种类型的重定位信息:

  1. COFF搬迁记录
  2. 可执行映像中的重定位部分.

他们有相似但不同的目的.可执行文件中的重定位信息标识在加载时需要修复的事情,如果可执行映像加载到与其首选地址不同的地址.

COFF重定位记录标识在链接时,当目标文件中的节被分配给可执行映像中的偏移时需要修复的内容.


Oli*_*let 4

重定位用于将可执行代码放置在进程中自己的内存空间中。例如,如果您尝试加载两个都请求相同基地址(即内存中的同一位置)的 dll,则必须将其中一个 dll 重新定位到另一个地址。 NTCore是探索可移植可执行 (PE) 文件(COFF 现在的名称)的有用站点。 是另一个很好地解释搬迁的网站。