2008-09-18 32 views

回答

4

重定位用於將可執行代碼放置在其進程的內存空間中。例如,如果您嘗試加載兩個都要求相同基址(即,內存中的相同位置)的dll,則其中一個dll將不得不重新定位到另一個地址。 NTCore是一個探索便攜式可執行文件(PE)的有用網站,這是現在叫做COFF的文件。 Here是另一個可以很好地解釋搬遷的站點。

2

意外增加使用重定位是在運行時混淆二進制文件,而不需要額外的解包代碼。見this paper

7

實際上,與COFF有兩種類型的重定位信息:

  1. COFF重定位記錄
  2. 在可執行映像的重定位部。

它們有相似但不同的目的。可執行文件中的重定位信息標識在加載時需要修正的事情,如果可執行映像裝載在與其首選地址不同的地址處。

COFF重定位記錄標識在鏈接時需要修正的事情,當對象文件中的某個部分分配給可執行映像中的偏移量時。

相關問題