需準備的工具: Dll LoadEx、LordPE、ReloX 

如 load.dll 為加密文件 區段如下



將 load.dll 脫殼 Dump 到另一處命名為 unpack.dll (可隨意命名)

然後將未脫殼的load.dll在複製一份 如圖



用Dll LoadEx載入未加殼的文件(這裡指load.dll與copy-load.dll)



不要關閉Dll LoadEx

然後開啟 LordPE 在上面的窗口點選Dll LoadEx的圖示在看到下面窗口 看剛剛載入的兩個load.dll與copy-load.dll





這時候看到的 load.dll的ImageBase為10000000
copy -load.dll的ImageBase為01C70000

然後在 LordPE 上面將 load.dll 選擇 dump full 為 01.dll 將 copy-load.dll dump 為02.dll





不要關閉 LordPE

接著開啟 ReloX 將剛剛Dump的01.dll與02.dll分別載入 再右邊的框框填入剛剛在 LordPE 上看到的ImageBase



然後按下 Selsct sections 選擇要重定位的區段 這裡選第一個區段 (後有說明-->註)



接著按下Compare 比較 窗口會彈出重定位表 最後按下Fix PE Module 來修復已脫殼

Dump後的文件 unpack.dll 會出現一個新的_unpack.dll 這個就是已修復重定位的文件



用 LordPE 打開來看已修復的文件 重定位表的區段為.reloc

ReloX 修復完成後 Dll LoadEx、LordPE 才可關閉

註:

在脫殼的過程Dump下來已經知道 第一個區段 裡面為 .text .rdata .data 的合併區段 修復重定位主要就選擇這3個區段

許多加殼的文件會將這三個區段合併為一個區段

所以在Dump後要完美修復必須找出這三個區段手工修復 其實沒修復為一個合併區段的状态也無訪