2008-09-18 33 views

回答

4

重定位用于将可执行代码放置在其进程的内存空间中。例如,如果您尝试加载两个都要求相同基址(即,内存中的相同位置)的dll,则其中一个dll将不得不重新定位到另一个地址。 NTCore是一个探索便携式可执行文件(PE)的有用网站,这是现在叫做COFF的文件。 Here是另一个可以很好地解释搬迁的站点。

2

意外增加使用重定位是在运行时混淆二进制文件,而不需要额外的解包代码。见this paper

7

实际上,与COFF有两种类型的重定位信息:

  1. COFF重定位记录
  2. 在可执行映像的重定位部。

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

COFF重定位记录标识在链接时需要修正的事情,当对象文件中的某个部分分配给可执行映像中的偏移量时。

相关问题