天天看點

VBKiller使用說明

go google search

VBKiller使用說明

Killer是一個VB輔助逆向分析的工具。首先聲明,它不能幫你把VB程式反編譯到VB源代碼,隻能使得VB程式的反彙編看起來更接近VB代碼。

配合IDA使用,可以建立VB程式幾乎所有的類結構、方法表、函數體,并建立方法表結構體;可以識别VB程式中引用的COM的CLSID,并使用ProgID命名;可以建立任意COM程式(非VB編譯的也可以)的方法表、函數體,并建立方法表結構體,可以在待分析的VB程式中使用這些結構體。經過這些處理,待分析的VB程式在IDA中就形成了多個很規範類、方法,離逆向到源碼已經不遠了。

說用方法:

點選浏覽按鈕選中一個COM程式,DLL或者Exe或者ocx,如果不是VB程式,要在“非VB程式”那裡打勾,點選檢視。左邊的框框就列出了所選程式的所有COM接口,如果還要看類和枚舉,可以選中“顯示接口以外的所有類”。點選任意一個接口,右邊就顯示了該接口的所有方法,在方法表中位址、方法體的真實位址。如果要顯示前面七個基本方法,則需要選中“顯示基本接口的方法”。如果是非VB程式,右邊有映像基址和虛拟基址,映像基址就是程式的ImageBase,而虛拟基址就是配置設定到記憶體空間裡面的起始位址,程式預設大概計算了這個位址,如果不正确,就需要手工修改,因為程式得到的方法表位址是運作空間裡面的,必須知道這兩個基址才能轉成靜态檔案中的位址,是以很重要,不能填寫,否則就會識别錯誤。點選生成IDC,就可以生成目前選中的接口所對應的IDC檔案,類和枚舉是不能生成IDC的,把這個IDC加載到IDA中,就可以自動識别處理相應的方法位址了。點選全部生成,就可以生成所有接口的IDC檔案(放到同一個檔案裡面)。選中“生成結構體”,再使用兩個生成按鈕,就可以生成這個COM對應的結構體建立腳本,把這個結構體IDC載入IDA,就會在IDA中生成一批對應的結構體,比如:分析的一個程式用到了資料庫操作和加解密操作,一般要載入ADO和CAPICOM的結構體腳本。

VBKiller還有一個掃描識别COM的功能尚未完成。

同一個目錄下,還有另外幾個c檔案。

其中,header.c是上面的IDC檔案所要包含的,這是公用函數檔案;

vb.c是網絡上流傳的那個vb.idc修改後的版本,沒有改多少,感覺很多地方沒有起作用。可以利用該腳本建立VB程式的類結構和事件表;

vboop.c是專門輔助分析VB面向對象功能的腳本。

裡面的Do_BasicOOP方法主要是根據vb.c建立好的事件表,處理對應的函數體,如果函數沒有建立,則建立函數,并把該函數改名為與事件表的名字一緻,同時建立每個類的方法表結構體,方面以後分析。

ParseAPI用于處理VB内部函數,它将掃描所有指定的函數的交叉引用,給該函數加上可重複注釋,嘗試識别參數,并給各個參數加上注釋,如果參數是寄存器,則再往上尋找寄存器資料的來源,并加上注釋。掃描的函數和注釋是代碼裡面指定的,目前指定了大多數函數,大家可以根據自己需要加上新的函數。

ParseNew方法用于掃描所有的_vbaNew和_vbaNew2的交叉引用,并嘗試識别相應的CLSID,如果能識别,則修改為相應的程式名,以友善檢視。識别是内置實作的,目前内置的不多,大家可以根據需要添加自己的。掃描是,如果發現無法識别的CLSID,程式将會把該CLSID寫入到同目錄下的UnKnown.txt中,分析一遍後可以去檢視該檔案,如果發現有未識别的CLSID,則到系統資料庫中搜尋該CLSID,得到程式名後,在程式相應地方加上即可。