一提“破解”、“逆向”等词汇,大家定然众口芬芸,莫衷一是,原因就是我们对其概念和历史并不知晓,换言之,我们大多数人现在只知其然,不知其所以然。当然大家最关心的法律问题更是知之甚少了。
解析软件逆向工程
软件逆向工程(Software Reverse Engineering)又称软件反向工程,是指从可运行的程序系统出发,运用解密、反汇编、系统分析、程序理解等多种计算机技术,对软件的结构、流程、算法、代码等进行逆向拆解和分析,推导出软件产品的源代码、设计原理、结构、算法、处理过程、运行方法及相关文档等[1]。通常,人们把对软件进行反向分析的整个过程统称为软件逆向工程,把在这个过程中所采用的技术都统称为软件逆向工程技术。
现实中,人们并不总是完全需要逆向出目标软件的所有功能,如果那样的话将会是一个艰苦而漫长的过程。大多数情况下是意图通过对软件进行逆向,从中获取软件的算法,或破解软件及进行功能扩展等。
逆向工程研究现状
软件逆向工程最早是作为软件维护的一部分出现的。早在 20 世纪 60 年代,随着第三代计算机的产生,为了挽救大量运行在即将报废的第二代计算机上的软件,同时也为加速开发第三代计算机上的软件,美国开始研制针对特定软件的专门用途的逆编译工具来进行软件移植,并成功转换了许多优秀软件。这些逆