【发布时间】:2015-10-30 19:34:11
【问题描述】:
据我了解(主要来自可移植可执行格式的Wikipedia's article),Windows DLL 不使用与位置无关的代码,而是具有链接时间定义的首选基地址。但是,如果两个库的基地址发生冲突,则需要通过其重定位表来重定位一个。
这个 PE 重定位是否类似于 ELF 的 GOT 和 PLT(.data 部分中的进程本地表,要求每个绝对地址都经过间接寻址),还是更像动态重定位(在加载时所有绝对地址地址被翻译)?如果是后者,这在 x64 上会不会有问题?
【问题讨论】:
标签: portable-executable relocation