計(jì)算機(jī)軟件反向工程(Reverseengineering)也稱(chēng)為計(jì)算機(jī)軟件還原工程,是指通過(guò)對(duì)他人軟件的目標(biāo)程序(比如可執(zhí)行程序)進(jìn)行“逆向分析、研究”工作,以推導(dǎo)出他人的軟件產(chǎn)品所使用的思路、原理、結(jié)構(gòu)、算法、處理過(guò)程、運(yùn)行方法等設(shè)計(jì)要素,某些特定情況下可能推導(dǎo)出源代碼。反編譯作為自己開(kāi)發(fā)軟件時(shí)的參考,或者直接用于自己的軟件產(chǎn)品中。
反編譯是一個(gè)復(fù)雜的過(guò)程,反編譯軟件有:
VB相關(guān)的反編譯程序VBExplorer、VB反編譯精靈和VBRezQ.
JAVA相關(guān)的反編譯程序JAD(JointApplicationDevelopment):(jad和jadEclipse已較長(zhǎng)時(shí)間沒(méi)有維護(hù));JD(JavaDecompiler)
C++相關(guān)的反編譯程序eXeScopeDelphi相關(guān)的反編譯程序DEDE
c#:相關(guān)的反編譯程序Reflector易語(yǔ)言相關(guān)的反編譯程序E-CodeExplorer.exe(易格式可執(zhí)行文件分析器)
SWF相關(guān)的反編譯程序ActionScriptViewer第一個(gè)也是最強(qiáng)大的商業(yè)SWF反編譯工具,同類(lèi)產(chǎn)品中,它的AS代碼反編譯效果最好,SWF轉(zhuǎn)Fla工程重建成功率最高。
Android相關(guān)的反編譯程序SMALI/BAKSMALISMALI/BAKSMALI是一個(gè)強(qiáng)大的apk文件編輯工具,用于Dalvik虛擬機(jī)(Google公司自己設(shè)計(jì)用于Android平臺(tái)的虛擬機(jī))來(lái)反編譯和回編譯classes.dex。其語(yǔ)法是一種寬松式的Jasmin/dedexer語(yǔ)法,而且它實(shí)現(xiàn)了.dex格式所有功能(注解,調(diào)試信息,線路信息等)。
Python相關(guān)的反編譯程序uncompyle2可以直接轉(zhuǎn)化為十分完美的python源碼,并可以將反編譯后的源碼再次生成字節(jié)碼文件!閃客精靈(解析SWF,還原SWF文件為FLA文件)