逆向工程
編輯逆向工程(也稱為逆向工程或反向工程)是一種過程或方法,人們試圖通過演繹推理來理解先前制造的設備、過程、系統或軟件如何以很少的(如果有的話)完成任務 深入了解它是如何做到的。 它本質上是打開或剖析系統以查看其工作原理的過程,以便復制或增強它。 根據所考慮的系統和采用的技術,在逆向工程中獲得的知識可以幫助重新利用過時的對象、進行安全分析或了解某些東西的工作原理。
盡管該過程特定于執行它的對象,但所有逆向工程過程都包含三個基本步驟:信息提取、建模和審查。 信息提取是指收集執行操作的所有相關信息的做法。 建模是指將收集到的信息組合成一個抽象模型的做法,可以作為設計新對象或系統的指南。 審查是指對模型進行測試,以確保所選摘要的有效性。 逆向工程適用于計算機工程、機械工程、設計、電子工程、軟件工程、化學工程、系統生物學等領域。
概覽
編輯在各個領域進行逆向工程的原因有很多。 逆向工程起源于對商業或軍事優勢的硬件分析。 然而,逆向工程過程本身并不關心創建副本或以某種方式更改工件。 它只是一種分析,可以從產品中推斷出設計特征,而對產品的原始生產過程所涉及的程序知之甚少或一無所知。
在某些情況下,逆向工程過程的目標可能只是遺留系統的重新文檔化。 即使逆向工程產品是競爭對手的產品,目標也可能不是復制它,而是進行競爭對手分析。 逆向工程也可用于創建可互操作的產品,盡管美國和歐盟制定了一些狹義的立法,但二十多年來,為該目的使用特定逆向工程技術的合法性一直在世界各地的法庭上激烈爭論。
軟件逆向工程可以幫助提高對底層源代碼的理解,以維護和改進軟件,可以提取相關信息以做出軟件開發決策,代碼的圖形表示可以提供有關源代碼的替代視圖, 這有助于檢測和修復軟件錯誤或漏洞。 通常,隨著一些軟件的開發,它的設計信息和改進經常會隨著時間的推移而丟失,但是丟失的信息通常可以通過逆向工程來恢復。 該過程還有助于減少理解源代碼所需的時間,從而降低軟件開發的總體成本。 逆向工程還可以幫助檢測和消除使用更好的代碼檢測器寫入軟件的惡意代碼。 逆向源代碼可用于查找源代碼的其他用途,例如檢測源代碼在不打算使用的地方未經授權的復制,或揭示競爭對手的產品是如何構建的。 該過程通常用于破解軟件和媒體以取消其復制保護,或創建可能改進的副本甚至仿冒品,這通常是競爭對手或黑客的目標。
惡意軟件開發人員經常使用逆向工程技術來查找操作系統中的漏洞,以構建可以利用系統漏洞的計算機病毒。 逆向工程也被用于密碼分析,以發現替代密碼、對稱密鑰算法或公鑰密碼學中的漏洞。
逆向工程還有其他用途:
- 接口。 當一個系統需要與另一個系統接口并且兩個系統將如何協商有待建立時,可以使用逆向工程。 此類要求通常是為了實現互操作性。
- 軍事或商業間諜活動。 通過竊取或捕獲原型并將其拆解來了解敵人或競爭對手的最新研究,可能會導致類似產品的開發或更好的對策。
- 過時。 集成電路通常是在專有系統上設計并建立在生產線上的,這些產品在短短幾年內就會過時。 當使用這些部件的系統由于不再制造而無法再維護時,將功能合并到新技術中的xxx方法是對現有芯片進行逆向工程,然后利用獲得的理解使用更新的工具重新設計它 指引。 另一個過時的起源
內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/195014/