Loading AI tools
從人造的任何東西中提取知識或設計信息並重新生成或根據提取的信息再現任何東西的過程 来自维基百科,自由的百科全书
逆向工程(英語:Reverse Engineering),又稱反向工程,是一種技術仿造過程,即對一專案標產品進行逆向分析及研究,從而演繹並得出該產品的處理流程、組織結構、功能效能規格等設計要素,以製作出功能相近,但又不完全一樣的產品。逆向工程源於商業及軍事領域中的硬件分析。其主要目的是,在無法輕易獲得必要的生產資訊下,直接從成品的分析,推導產品的設計原理。
逆向工程可能會被誤認為是對知識產權的嚴重侵害,但是在實際應用上,反而可能會保護知識產權所有者。例如在集成電路領域,如果懷疑某公司侵犯知識產權,可以用逆向工程技術來尋找證據。
需要逆向工程的原因如下:
隨着電腦輔助設計的流行,逆向工程變成了一種能根據現有的物理部件通過CAD、CAM、CAE或其他軟件構築3D虛擬模型的方法。[1]逆向工程的過程採用了通過測量實際物體的尺寸並將其製作成3D模型的方法,真實的物件可以通過如CMMs、激光掃描器、結構光源轉換儀,或者X射線斷層成像等這些3D掃描技術進行尺寸測量。這些測量數據通常被認作是點雲,缺乏拓撲資訊並且同時通常會被製作成更有用格式例如多邊形網格,NURBS曲線或者CAD模型。由於點雲本身並不像3D軟件裏的模型那樣直觀,所以如同3-matic、Imageware、PolyWorks、Rapidform或者傑魔公司等這些軟件都提供了將點雲變成能可視圖像,或者被其他應用軟件如3D CAD、CAM、CAE辨識的格式的功能。
反向工程同時會被需要將真實的幾何體應用在虛擬的數字開發環境中的商業活動中應用,比如將自己產品或者競爭者的三維數據數碼化。通過這種手段可以分析出產品的運作方式,部件構成,估計預算和辨識潛在的侵權行為等。
價值工程也是商業中應用的類似手段。不過價值工程的目的是通過反構造和分析產品來找到節省開銷的辦法。
由於「逆向工程」一詞用在軟件工程(簡稱「軟工」)領域中的具體含義模糊不清,Chikofsky和Cross為此寫了篇文章,以闡清及區分「逆向工程」與各種相近的概念。據文章所述,逆向工程是一種分析目標系統的過程,其目的是辨識出系統的各個組件以及它們之間的關係,並以其它的形式或在較高的抽象層次上,重建系統的表徵(Representations)。[2] 軟件逆向工程也可被視作「開發周期的逆行」。[3] 在此定義下,對一項軟件程式進行逆向工程,類似於逆行傳統瀑布模型中的開發步驟,即把實現階段的輸出(即軟件程式)還原回在設計階段所做的構思。軟件逆向工程僅僅是一種檢測或分析的過程,它並不會更改目標系統(否則就成了軟件再工程)。
軟件防篡改技術被用於遏制對專有軟件進行逆向工程及再工程。實際應用中出現了兩類逆向工程。第一種,軟件的原始碼可用,但是更高層次的部分幾乎沒有描述文件或者描述文件不再適用或者遺失。第二種,軟件沒有可用的原始碼,任何能找到它的原始碼的努力都被稱為逆向工程。[來源請求]大部分人都熟悉這個詞的第二種用法。軟件的逆向工程可以使用淨室技術來避免侵犯版權。
軟工中的黑箱測試與逆向工程有很多共同點,但黑箱測試人員常供以API以作測試,並且測試的目的就是通過外部攻擊,找出程式漏洞和未歸檔的特性。
逆向工程的其他目的包括:安全審查、 解除複製保護(又稱破解)、繞過消費類電子產品中常設有的訪問限制、客製化嵌入式系統(例如引擎管理系統)、產品內部修補或更新、給功能不全的廉價硬件(例如某些顯示卡晶片組)添加額外功能,或僅為滿足好奇心。
對最終程式的二進制代碼所進行的逆向工程被稱為「代碼反向工程」,或簡稱RCE(Reverse Code Engineering)。[4]例如,我們可以用Jad對Java平台的二進制碼進行反編譯。一個著名的逆向工程案例是,首個由非IBM公司所實現的IBM個人電腦中的BIOS,這開創了IBM PC相容機產業,使得IBM PC相容機成為多年來的主流電腦硬件平台。一個以軟件逆向工程為樂的團體例子是CORE(Challenge Of Reverse Engineering,意為「挑戰逆向工程」)。在美國,軟件逆向工程只要遵守版權法的合理使用規定,都是受保護的。[5]成功的軟件逆向工程專案有:
軟件逆向工程有多種實現方法,主要有三:
許多UML工具涉及到匯入原始碼生成UML圖,即「逆向工程」。
分析智能卡的逆向工程具有侵入性和破壞性,智能卡被層層刮掉用電子顯微鏡拍照。這種技術可以完整地揭示出智能卡的硬件和軟件部份。主要的問題就是,把所有的東西按正確的順序放好以找出每一個部件是如何工作的。工程師們用打亂主記憶體位置的方法隱藏密碼和操作,例如busscrambling[6][7]。有時甚至可以在智能卡執行的時候用探針直接測量電壓,設計師則用感應器來檢測和防止。[8]破壞支付業務中使用的智能卡很困難,只有大晶片製造商使用那些專業的裝置。況且,和其他安全機制例如陰影帳戶相比,這種方法回報太低。
逆向工程經常被用在軍事上,用來複製從戰場上由常規部隊或情報活動獲得的別國之技術、裝置、資訊或其零件。二戰和冷戰中經常被用到。二戰以來的著名例子有:
在美國及其他許多國家,製品或製法都受商業秘密保護,只要合理地取得製品或製法就可以對其進行逆向工程。專利需要將發明公開發表,因此專利不需要逆向工程就可進行研究。逆向工程的一種動力就是確認競爭者的產品是否侵權專利或侵犯版權。
為了互用性(例如,支援未公開的檔案格式或硬件外圍),而對軟件或硬件系統進行的逆向工程被認為是合法的,雖然專利持有者經常反對並試圖打壓以任何目的對他們產品進行的逆向工程。
為了取得一個有版權的電腦程式中隱含的思想和功能元素且有合法的理由要取得,當只有拆解這一種方法時,根據法律判定,拆解是對有版權作品的合理使用。[11]
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.