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

  互聯網時代,在各個領域進行逆向工程的緣由有不少,逆向工程起源於商業或軍事優點的硬件分析。然而,逆向工程過程自己並不涉及以某種方式建立副本或更改工件;它只是一種分析,以便從產品中推斷設計特徵,而對其原始生產中涉及的程序幾乎沒有或沒有其餘知識。在一些狀況下,逆向工程過程的目標能夠簡單地是一個文檔重構的遺留系統。即便逆向工程產品是競爭對手的產品,目標可能不是複製它們,而是進行競爭對手分析。算法

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

  一般,隨着某些軟件的發展,其設計信息和改進一般會隨着時間的推移而丟失,但這種丟失的信息一般能夠經過逆向工程來恢復。此過程還有助於縮短理解源代碼所需的時間,從而下降軟件開發的整體成本。操作系統

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