我正在阅读 COFF 文件格式,它通常用于创建可执行文件格式(它也有一些变体)。
在阅读时,我遇到了格式的重定位部分。此重定位部分如何用于创建可执行文件。
如果您向我指出一些对我有帮助的链接,那将非常有用。
我正在阅读 COFF 文件格式,它通常用于创建可执行文件格式(它也有一些变体)。
在阅读时,我遇到了格式的重定位部分。此重定位部分如何用于创建可执行文件。
如果您向我指出一些对我有帮助的链接,那将非常有用。
实际上,对于 COFF,有两种类型的重定位信息:
它们有相似但不同的目的。如果可执行映像加载到与其首选地址不同的地址,则可执行文件中的重定位信息标识需要在加载时修复的内容。
COFF 重定位记录标识需要在链接时修复的内容,此时将目标文件中的部分分配给可执行映像中的偏移量。
重定位的一个意外添加使用是在运行时(去)混淆二进制文件,而不需要额外的解包代码。见这篇论文。