【问题标题】:In the COFF file format, what is the significance of the relocation information section?在 COFF 文件格式中,重定位信息部分的意义是什么?
【发布时间】:2008-09-18 14:50:28
【问题描述】:

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

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

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

【问题讨论】:

    标签: coff


    【解决方案1】:

    其实COFF有2种重定位信息:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        重定位的一个意外附加用途是在运行时(去)混淆二进制文件,而无需额外的解包代码。见this paper

        【讨论】:

          猜你喜欢
          • 2022-01-23
          • 2023-03-18
          • 2022-11-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-04-29
          • 2020-10-17
          • 2016-06-21
          相关资源
          最近更新 更多