In the COFF file format, what is the significance of the relocation information section?我正在阅读有关COFF文件格式的信息,该格式通常用于创建可执行文件格式(它也有一些变体)。 在阅读时,我遇到了格式的重定位部分。 此重定位部分如何用于创建可执行文件。 如果您向我指出一些对我有帮助的链接,这将非常有用。 实际上,使用COFF时,有两种类型的重定位信息: 它们具有相似但不同的目的。可执行文件中的重定位信息标识了在加载时,如果将可执行文件映像加载到与其首选地址不同的地址,则需要修复的内容。 当对象文件中的某个部分分配给可执行映像中的偏移量时,COFF重定位记录会在链接时标识需要修复的内容。
重定位用于在进程中将可执行代码放置在其自己的内存空间中。例如,如果您尝试加载两个都请求相同基地址(即,内存中的相同位置)的dll,则其中一个dll将必须重定位到另一个地址。 迁移的意外使用是在运行时对二进制文件进行解混淆,而无需其他解压缩代码。请参阅本文。 |