VM分析還原插件是一個以可執(zhí)行文件作為輸入,反編譯出高等級源代碼的程序。VM分析還原插件是編譯器的反向過程,編譯器把高級源代碼編譯成可執(zhí)行文件。
說明介紹
反編譯器通常不能完美的重現(xiàn)源代碼,也不能很好的處理混淆代碼。至少,反匯編器是計(jì)算機(jī)軟件逆向工程中非常重要的工具。
“反編譯器”通常的解釋為:一個可以將可執(zhí)行文件轉(zhuǎn)換成高級語言源代碼的程序,當(dāng)重新編譯后,組建出的可執(zhí)行程序的行為和原始的可執(zhí)行程序一樣。對比,反匯編器把可執(zhí)行文件轉(zhuǎn)換成匯編語言,而匯編器把匯編語言編譯成可執(zhí)行程序。
反編譯過程就是使用的反編譯器的過程,從反編譯器的字面意思可以看出。它可以用在復(fù)原遺失的源代碼,在計(jì)算機(jī)安全,協(xié)同工作,錯誤糾正方面也是很有用的。反編譯過程的關(guān)鍵在于反編譯出的代碼信息和分析報告。字節(jié)碼格式被用在許多的虛擬機(jī)中(例如Java虛擬機(jī)和.NET Framework Common Language Runtime)通常包含了廣泛的元數(shù)據(jù)和高級語言規(guī)則,使得反編譯過程成為可行的。調(diào)試數(shù)據(jù)的出現(xiàn)使反編譯出原始變量,結(jié)構(gòu)體,甚至行號成為可能。機(jī)器語言如果沒有元數(shù)據(jù)和調(diào)試數(shù)據(jù),就會使反編譯變的非常困難。
一些編譯器和編譯器組件可以生成混淆代碼(這樣生成的代碼會使反編譯變得更加困難)。這樣會給逆向帶來難度。
功能特點(diǎn)
我們的工作
自從匯編級代碼混淆和代碼虛擬化的出現(xiàn),給軟件分析帶來了很大的困難,我們的工作就是使這類代碼的分析變得簡單。
我們的產(chǎn)品
現(xiàn)在,我們提供了一款可以分析一類匯編級虛擬化代碼的組件。為了使用更加方便,我們將它接入調(diào)試器中。
xx_vm_release
vmp虛擬代碼分析還原插件,可以自動化的分析由vmp保護(hù)的虛擬代碼,提供了包含豐富信息的日志文件,通過對日志偽代碼的分析,我們幾乎可以還原出原始指令。從而達(dá)到分析目的。目前我們已經(jīng)開發(fā)出OllyDbg適用的插件,后續(xù)我們也會對接其他主流調(diào)試器。