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