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

时间:2008-09-18 14:50:29

标签: coff

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

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

如果您指出一些有助于我的链接,那将非常有用。

3 个答案:

答案 0 :(得分:7)

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

  1. COFF搬迁记录
  2. 可执行映像中的重定位部分。
  3. 他们有相似但不同的目的。可执行文件中的重定位信息标识了在加载时,如果可执行映像从其首选地址加载到不同的地址,则需要修复的内容。

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

答案 1 :(得分:4)

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

答案 2 :(得分:2)

重新定位的无意添加使用是在运行时(de-)混淆二进制文件而不需要额外的解包代码。请参阅this paper

相关问题