概況
反向開發可能會被誤認為是對智慧財產權的嚴重侵害,但是在實際套用上,反而可能會保護智慧財產權所有者。例如在積體電路領域,如果懷疑某公司侵犯智慧財產權,可以用反向開發技術來尋找證據。
使用原因
需要反向開發的原因包括以下幾種:
相互運用性檔案丟失:採取反向開發的情況往往是在某一個特殊設備的檔案已經丟失了(或者根本就沒有),同時又找不到工程的負責人。完整的系統時常需要基於的陳舊的系統上進行再設計,這就意味著想要整合原有的功能進行項目的唯一的方法便是採用逆向工程的方法分析已有的碎片進行再設計。產品分析:用於調查產品的運作方式,部件構成,估計預算,識別潛在的侵權行為。安全性評估。去除複製保護和偽裝的登錄許可權。製造沒有許可/未審批的副本。學術/研究目的。
機械設備
隨著計算機輔助設計的流行,反向開發變成了一種能根據現有的物理部件通過CAD、CAM、CAE或其他軟體構築3D虛擬模型的方法。.反向開發的過程採用了通過丈量實際物體的尺寸並將其製作成3D模型的方法,真實的物件可以通過如CMMs,雷射掃瞄器,結構光源轉換儀或者X射線斷層成像這些3D掃描技術進行尺寸測量。這些測量數據通常被認作是點集,缺乏拓撲信息並且同時通常會被製作成更有用格式例如多邊形格線,NURBS曲線或者CAD模型。由於頂點雲本身並不像3D軟體里的模型那樣直觀,所以如同3-matic、Imageware、PolyWorks、Rapidform或者Geomagic這些軟體都提供了將頂點雲變成能可視圖像或者被其他套用軟體如3D CAD、CAM、CAE識別的格式的功能。
反向工程同時會被需要將真實的幾何體套用在虛擬的數字開發環境中的商業活動中套用,比如將自己產品或者競爭者的三維數據數位化。通過這種手段可以分析出產品的運作方式,部件構成,估計預算和識別潛在的侵權行為等。
價值工程也是商業中套用的類似手段。不過價值工程的目的是通過反構造和分析產品來找到節省開銷的辦法。
軟體開發
“反向工程”這個詞用在軟體上時,對不同的人有不同的意思,Chikofsky和Cross為那些用法寫了一個研究報告並定義了一個分類系統。報告裡說:
反向開發是這樣一個過程:對系統進行分析,在高一級的抽象層次描述系統。它也可被看作“開發周期的逆行”。在這個模式里,實現階段的輸出(原始碼形式的)被逆向工程回分析階段,與傳統的瀑布模型正相反。逆向工程只不過是一個檢測的過程:軟體系統不被修改(否則就成了軟體重構)。軟體防修改技術被用於防止有著作權的軟體和軟體推動的系統被逆向工程或軟體重構。實際套用中出現了兩類逆向工程。第一種,軟體的原始碼可用,但是更高層次的部分幾乎沒有描述文檔或者描述文檔不再適用或者丟失。第二種,軟體沒有可用的原始碼,任何能找到它的原始碼的努力都被稱為逆向工程。大部分人都熟悉這個詞的第二種用法。軟體的逆向工程可以使用淨室技術避免侵犯著作權。
軟體工程中的黑盒測試與逆向工程有很多相同之處。測試者通常使用API,但是他們的目標是從外部找出漏洞和未歸檔特性。
反向開發的其他目的包括:安全審查, 移除著作權保護(“破解”),規避消費電子中的訪問限制,定製嵌入式系統(例如引擎管理系統),內部修補或更新,給功能不全的廉價硬體(例如某些顯示卡晶片組)增加功能,或者僅僅是為了滿足好奇心。
軍事套用
反向開發經常被用在軍事上,用來複製從戰場上由常規部隊或情報活動獲得的別國的技術、設備、信息或其零件。二戰和冷戰中經常被用到。二戰以來的著名例子有:
便攜油桶:英美軍注意到德軍有一種設計絕妙的油桶,於是就用逆向工程複製了這些桶。這些被泛稱為“便攜油桶”。圖波列夫Tu-4: 三架飛往日本的B-29轟炸機迫降到了蘇聯。蘇聯沒有類似的戰略轟炸機,就決定複製B-29。幾年後他們開發出了Tu-4,幾近完美的複製品。 V2火箭:戰爭結束時V2的技術文檔和相關技術被西聯盟俘獲。蘇聯和被俘的德工程師要用俘獲的構件重建技術文檔和圖紙,用於生產這種飛彈的代件。R-1啟動了戰後蘇聯飛彈計畫,一直到R-7,並導致了太空競賽。 K-13/R-3S飛彈(北約代號為AA-2 'Atoll)是蘇聯對AIM-9響尾蛇的逆向工程複製品。早期傳說一枚台灣AIM-9B射中中國大陸MiG-17後沒有爆炸,這枚飛彈留在了機身里,飛行員帶著這枚飛彈返回了基地。根據蘇聯公開的資料則是由墜毀在中國境內的美國海軍的戰鬥機殘骸上取得。 BGM-71 TOW飛彈:1975年三月,伊朗與休斯飛彈系統公司的關於TOW和Maverick飛彈合作的談判因價格體系的分歧停止了,接下來的1979年革命結束了這種合作的所有計畫。伊朗成功地對這種飛彈進行逆向工程,目前正在生產他們自己的複製品:圖芬(Toophan)。
相關法律
在美國及其他許多國家,製品或製法都受商業秘密保護,只要合理地取得製品或製法就可以對其進行逆向工程。專利需要把你的發明公開發表,因此專利不需要逆向工程就可進行研究。逆向工程的一種動力就是確認競爭者的產品是否侵權專利或侵犯著作權。
為了互用性(例如,支持未公開的檔案格式或硬體外圍),而對軟體或硬體系統進行的逆向工程被認為是合法的,雖然專利持有者經常反對並試圖打壓以任何目的對他們產品進行的逆向工程。
為了獲取一個有著作權的電腦程式中隱含的思想和功能元素且有合法的理由要獲取,當只有拆解這一種方法時,根據法律判定,拆解是對有著作權作品的公平使用。