輸入表重建工具ReVirgin

看雪資料發表於2015-11-15

ReVirgin(簡稱RV)

功能:      重建Import Table;尋找OEP
下載地址:  http://www.woodmann.com/fravia/index.htm
具體地址是:http://www.woodmann.com/fravia/exe/revirgin.zip

一、安裝。

1、自動安裝:

直接雙擊*.msi就會自動啟用Windows Installer進行安裝,這是最省事的辦法。如果你的系統太老,可能需要到微軟主頁上免費下載Windows Installer的包。

2、手動安裝:

可以用WinRAR將*.msi解開到某個目錄中。然後把tracer.dll、thread.dll複製到%SystemRoot%目錄下;對於NT/2K/XP系統,把rvtracer.sys複製到%SystemRoot%\system32\drivers目錄中。

二、重建IT

1、首先選擇被加殼的程式所對應的程式。如果找不到則點選refresh按鈕。

2、再找被加殼了的程式的OEP。找OEP的方法主要有:用IceDump的/tracex;用衝擊波;手動用debugger跟;利用各種編譯器生成的可執行程式的startup code的機器碼的pattern來找;利用RV自帶的tracer來找。

3、找到OEP之後將其填入RV的相應位置(注意要填VA而不是RVA),然後點選“Fetch IAT”,RV會自動分析出IAT的起始RVA和Length。如果你覺得RV找到的不對,你也可以手動找到這個RVA和Length並填入該位置。

4、然後點選“IAT Resolver”按鈕,RV會自動分析,可能要等好幾分鐘。這時CPU佔用率很高,最好不要切換到其它程式。

5、分析完之後會看到一些API函式標記為“redirected/emulated”,此時點選“Resolve again”,大部分函式都可以resolve出來。

6、然後在下拉選單中選擇“Show unresolved”,因為此時只關心尚未分析出來的API函式。

在函式列表框中選中一個或多個函式(按住shift可以選多個),然後開啟右鍵選單。對於每個未分析出來的API函式,你可以試試右鍵選單中的“tracer”或“API Emulator”,如果RV能夠分析出來,則相應的行會變成“traced”或“emulated”狀態,並且Address這一列會指向DLL的地址範圍。

一旦變成“traced”或“emulated”狀態,則你可以再次點選“resolve again”按鈕,這些API函式將會被分析出來。

注:
a、未分析出來的函式很多時,最好不要用右鍵選單中的“Trace all”,後果你試試就知道了;
b、右鍵選單中的edit是個開關,表示列表中的每列是否可以編輯,此時可以手動輸入API函式的相關資訊(但這裡似乎有bug,因為即使你手動把未分析出來的函式都手動填入了,RV仍說沒有全部分析完)。
c、右鍵選單中的Tracer功能可能會導致被跟蹤的程式出現非法操作,所以最好是隨時使用“Save resolved”按鈕的功能把階段性結果存為文字檔案,一旦出現非法操作還可以用“Load resolved”功能把以前的結果載入進來繼續幹活。

7、對所有的API函式重複5、6兩步,大部分都可以分析出來。剩下的那些基本上要用debugger來手動分析了。

8、所有的API函式都分析出來之後,就可以生成IT資訊,並貼上到脫殼後的檔案中。首先你得確定把生成的IT放在程式的什麼位置,一般是放在末尾(此時要新增一個section),但實際上可以放在任何合理的位置。

把存放IT的位置的RVA填入,並點選“generate”按鈕。如果選中了“Auto fix sections + IT Paste”,則RV會問你脫殼後的exe檔名並自動把IT貼上進去(但目前的版本沒有幫你修改程式的OEP,你得手動修改貼上好的程式的OEP),並生成一個BIN檔案,這個BIN檔案是由IT、IAT、DLL名和函式名組成的,供你手動貼上用(如果你喜歡手動貼上的話)。

至此重建IT完畢。

三、其它說明:

1、RV的mangled scheme選項是用來對付那種將多個API重定向到同一個函式的殼的,一般用不上。
2、RV的底部的“Tracer”按鈕是用來跟蹤程式找OEP的,功能也很強。 只需要指定OEP可能存在於什麼範圍(給出最小值、最大值),當被跟蹤的程式的EIP落在此區間時RV就會停下來。這和利用IceDump的/tracex來找OEP有些相似。
3、API函式列表中的Refs這一列是該函式的引用計數。
4、最好是在OEP處將被加殼的程式suspend,然後用RV。因為某些被ASProtect加殼的程式在進入OEP之後會修改IAT的某些項。

相關文章