「开发周期的逆行」。在此定义下，对一项软件程序进行逆向工程，类似于逆行传统瀑布模型中的开发步骤，即把实现阶段的输出（即软件程序）还原回在设计阶段所做的构思。软件逆向工程仅仅是一种检测或分析的过程，它并不会更改目标系统（否则就成了软件再工程）。软件防篡改技术被用于遏制对专有软件进行逆向工程及再工程。大部分人都熟悉这个词的第二种用法。软件的逆向工程可以使用净室技术来避免侵犯版权。软工中的黑盒测试与逆向工程有很多共同点，但黑箱测试人员常供以API以作测试，并且测试的目的就是通过外部攻击，找出程序漏洞和未