1. 程式人生 > >什麼是逆向工程?黑客是如何構建可利用的漏洞?

什麼是逆向工程?黑客是如何構建可利用的漏洞?

  網際網路時代,在各個領域進行逆向工程的原因有很多,逆向工程起源於商業或軍事優勢的硬體分析。然而,逆向工程過程本身並不涉及以某種方式建立副本或更改工件;它只是一種分析,以便從產品中推斷設計特徵,而對其原始生產中涉及的程式幾乎沒有或沒有其他知識。在一些情況下,逆向工程過程的目標可以簡單地是一個文件重構的遺留系統。即使逆向工程產品是競爭對手的產品,目標可能不是複製它們,而是進行競爭對手分析。

  逆向工程也可用於建立可互操作的產品,儘管有一些狹隘的美國和歐盟立法,但為此目的使用特定逆向工程技術的合法性已在全球各地的法院上爭論了20多年。軟體逆向工程可以幫助提高對底層原始碼的理解,以便維護和改進軟體,可以提取相關資訊以便做出軟體開發的決策,程式碼的圖形表示可以提供有關原始碼的備用檢視程式碼,可以幫助檢測和修復軟體錯誤或漏洞。

  通常,隨著某些軟體的發展,其設計資訊和改進通常會隨著時間的推移而丟失,但這種丟失的資訊通常可以通過逆向工程來恢復。此過程還有助於縮短理解原始碼所需的時間,從而降低軟體開發的總體成本。

  逆向工程還可以幫助檢測和消除使用更好的程式碼檢測器寫入軟體的惡意程式碼。反轉原始碼可用於查詢原始碼的替代用途,例如檢測原始碼未被使用的未經授權的複製,或揭示競爭對手產品的構建方式。此過程通常用於“破解”軟體和媒體以刪除其副本保護,或建立(可能改進的)副本甚至是仿冒品,這通常是競爭對手的目標或黑客。惡意軟體開發人員經常使用逆向工程技術來查詢作業系統(OS)中的漏洞,以便構建可利用系統漏洞的計算機病毒,在密碼分析中也使用逆向工程,以便在替代密碼,對稱金鑰演算法或公鑰加密中發現漏洞。(歡迎轉載分享)​