Import REConstructor可以從雜亂的IAT中重建一個新的Import表(例如加殼軟體等),它可以重建Import表的描述符、IAT和所有的ASCII函式名。用它配合手動脫殼,可以脫UPX、CDilla1、PECompact、PKLite32、Shrinker、ASPack,
ASProtect等殼。該工具位於:光碟\tools\PE tools\Rebuilders\Import REConstructor。
在執行Import
REConstructor之前,必須滿足如下條件:
1) 目標檔案己完全被Dump到另一檔案;
2) 目標檔案必須正在執行中;
3)
事先要找到真正的入口點(OEP);
4) 最好載入IceDump,這樣建立的輸入表較少存在跨平臺的問題。
步驟如下:
(1)找被脫殼的入口點(OEP);
(2)完全Dump目標檔案;
(3)執行Import REConstructor和需要脫殼的應用程式;
(4)在Import REConstructor下拉選單框中選擇應用程式程式;
(5)在左下角填上應用程式的真正入口點偏移(OEP);
(6)按"IAT AutoSearch"按鈕,讓其自動檢測IAT位置,
出現"Found address which may be in the Original IAT.Try 'Get Import'"對話方塊,這表示輸入的OEP發揮作用了。
(7)按"Get Import"按鈕,讓其分析IAT結構得到基本資訊;
(8)如發現某個DLL顯示"valid :NO"
,按"Show Invalids"按鈕將分析所有的無效資訊,在Imported Function Found欄中點選滑鼠右鍵,選擇"Trace
Level1 (Disasm)",再按"Show Invalids"按鈕。如果成功,可以看到所有的DLL都為"valid:YES"字樣;
(9)再次重新整理"Show Invalids"按鈕檢視結果,如仍有無效的地址,繼續手動用右鍵的Level 2或3修復;
(10)如還是出錯,可以利用"Invalidate function(s)"、"Delete thunk(s)"、編輯Import表(雙擊函式)等功能手動修復。
(11)開始修復已脫殼的程式。選擇Add new section (預設是選上的) 來為Dump出來的檔案加一個Section(雖然檔案比較大,但避免了許多不必要的麻煩)
。
(12)按"Fix Dump"按鈕,並選擇剛在(2)步Dump出來的檔案,在此不必要備份。如修復的檔名是"Dump.exe",它將建立一個"Dump_.exe",此外OEP也被修正。
(13)生成的檔案可以跨平臺執行。