高級語言源程序經(jīng)過編譯變成可執(zhí)行文件,反編譯就是逆過程。
但是通常不能把可執(zhí)行文件變成高級語言源代碼,只能轉(zhuǎn)換成匯編程序。
計算機軟件反向工程(Reversepengineering)也稱為計算機軟件還原工程,是指通過對他人軟件的目標(biāo)程序(可執(zhí)行程序)進行“逆向分析、研究”工作,以推導(dǎo)出他人的軟件產(chǎn)品所使用的思路、原理、結(jié)構(gòu)、算法、處理過程、運行方法等設(shè)計要素,作為自己開發(fā)軟件時的參考,或者直接用于自己的軟件產(chǎn)品中。
反編譯是一個復(fù)雜的過程,所以越是高級語言,就越難于反編譯,但目前還是有許許多多的反編譯軟件:VB:VBExplorer、VB反編譯精靈和VBRezQ;只能反編譯界面圖像,好像代碼不能完全反編譯JAVA:JAD;java的反編譯比較常見,所以反編譯比較完全,將class文件反編譯成java文件也是有可能的C++:eXeScopeDephi:DEDEc#:Reflector易語言:E-CodeExplorer.exe
(易格式可執(zhí)行文件分析器)。