在COFF文件格式中,重定位信息部分的意义是什么?
时间:2020-03-06 14:21:43 来源:igfitidea点击:
我正在阅读有关COFF文件格式的信息,该格式通常用于创建可执行文件格式(它也有一些变体)。
在阅读时,我遇到了格式的重定位部分。此重定位部分如何用于创建可执行文件。
如果我们将我引向一些对我有帮助的链接,这将非常有用。
解决方案
重定位用于在进程中将可执行代码放置在其自己的内存空间中。例如,如果我们尝试加载两个都请求相同基地址(即,内存中的相同位置)的dll,则其中一个dll将必须重定位到另一个地址。
NTCore是用于浏览可移植可执行(PE)文件的有用站点,该文件现在称为COFF。这是另一个很好地解释了搬迁的站点。
迁移的意外使用是在运行时对二进制文件进行(反)模糊处理,而无需其他解压缩代码。请参阅本文。
实际上,使用COFF时,有两种类型的重定位信息:
- COFF搬迁记录
- 可执行映像中的重定位部分。
它们具有相似但不同的目的。可执行文件中的重定位信息标识了在加载时,如果将可执行文件映像加载到与其首选地址不同的地址,则需要修复的内容。
当对象文件中的某个部分分配给可执行映像中的偏移量时,COFF重定位记录会在链接时标识需要修复的内容。