计算机软件反向工程(Reverse engineering)也称为计算机软件还原工程,是指通过对他人软件的目标程序(比如可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,某些特定情况下可能推导出源代码。反编译作为自己开发软件时的参考,或者直接用于自己的软件产品中。
反编译是一个复杂的过程,反编译软件有:
VB相关的反编译程序
VBExplorer、VB反编译精灵和VBRezQ.
JAVA相关的反编译程序
JAD(Joint Application Development):(jad和jadEclipse已较长时间没有维护);
JD(Java Decompiler)
C++相关的反编译程序
eXeScope
Dephi相关的反编译程序
DEDE
C#:相关的反编译程序
Reflector
易语言相关的反编译程序
E-Code Explorer.exe(易格式可执行文件分析器)
SWF相关的反编译程序
Action Script Viewer
第一个也是最强大的商业SWF反编译工具,同类产品中,它的AS代码反编译效果最好,SWF转Fla工程重建成功率最高。
Android相关的反编译程序
SMALI/BAKSMAL
SMALI/BAKSMALI是一个强大的apk文件编辑工具,用于Dalvik虚拟机(Google公司自己设计用于Android平台的虚拟机)来反编译和回编译classes.dex。其语法是一种宽松式的Jasmin/dedexer语法,而且它实现了.dex格式所有功能(注解,调试信息,线路信息等)。
Python相关的反编译程序
uncompyle2
uncompyle2可以直接转化为十分完美的python源码,并可以将反编译后的源码再次生成字节码文件!
闪客精灵
(解析SWF,还原SWF文件为FLA文件)