软件反向工程概述
2026年01月16日
(一)软件反向工程概述
反向工程,即逆向研发工程,是指通过对既有技术或者产品进行研究、分解,进而进行创新与再开发的过程。计算机软件反向工程是软件开发者在研发软件过程中提出的专业概念,它是利用一种特定的反向工具将软件的目标代码转为源代码,进而通过对源代码进行深入的研究分析得出既有软件的设计目的、设计思路、业务流程、组织结构等要素,并利用这些要素进行进一步开发的过程。(https://www.daowen.com)
计算机软件反向工程既有反向工程的基本特征,同时又有其计算机专业领域的独特性。第一,模糊性。与物理反向工程、化学反向工程不同,前两者的反向工程可以通过拆卸或者化学实验等方法精准地得出物体的结构或者物质的成分,从而根据分析结果可以完全实现还原,但是计算机软件反向工程是利用反编译软件进行反编译操作,由于反编译软件在操作过程中会对代码进行优化处理,因此由编译器得到的源代码并不是对实际开发者所编写的源代码的完全还原,相反它与实际开发者的源代码有很大的差别。第二,有效性。虽然软件反向工程并不能对既有程序进行复制性的还原,但是通过反编译代码仍然可以分析出该软件的不同模块的功能算法、组织架构、程序流程等,软件开发者即利用这些设计要素对现有软件进行完善和再开发。