逆向工程(又稱逆向技術),是一種產品設計技術再現過程,即對一項目標產品進行逆向分析及研究,從而演繹并得出該產品的處理流程、組織結構、功能特性及技術規格等設計要素,以制作出功能相近,但又不完全一樣的產品。逆向工程源于商業及軍事領域中的硬件分析。其主要目的是在不能輕易獲得必要的生產信息的情況下,直接從成品分析,推導出產品的設計原理。
逆向工程可能會被誤認為是對知識產權的嚴重侵害,但是在實際應用上,反而可能會保護知識產權所有者。例如在集成電路領域,如果懷疑某公司侵犯知識產權,可以用逆向工程技術來尋找證據。
需要逆向工程的原因如下:
1.接口設計。由于互操作性,逆向工程被用來找出系統之間的協作協議。
2.軍事或商業機密。竊取敵人或競爭對手的最新研究或產品原型。
3.改善文檔。當原有的文檔有不充分處,又當系統被更新而原設計人員不在時,逆向工程被用來獲取所需數據,以補充說明或了解系統的最新狀態。
4.軟件升級或更新。出于功能、合規、安全等需求更改,逆向工程被用來了解現有或遺留軟件系統,以評估更新或移植系統所需的工作。
5.制造沒有許可/未授權的副本。
6.學術/學習目的。
7.去除復制保護和偽裝的登錄權限。
8.文件丟失:采取逆向工程的情況往往是在某一個特殊設備的文件已經丟失了(或者根本就沒有),同時又找不到工程的負責人。完整的系統時常需要基于陳舊的系統上進行再設計,這就意味著想要集成原有的功能進行項目的唯一方法,便是采用逆向工程的方法,分析已有的碎片進行再設計。
9.產品分析:用于調查產品的運作方式,部件構成,估計預算,識別潛在的侵權行為。