Import REConstructor可以從雜亂的IAT中重建一個新的Import表(例如加殼軟件等),它可以重建Import表的描述
符、IAT和所有的ASCII函數名。用它配合手動脫殼,可以脫UPX、CDilla1、PECompact、PKLite32、Shrinker、
ASPack, ASProtect等殼。
在運行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)生成的文件可以跨平臺運行。
參考網址:
http://www.pediy.com/kssd/tutorial/chap8-5-41.htm