(一) 概述
我們逆向的世界
在軟件破解或者軟件加密、解密這個圈子里面,大家對于逆向工程這個詞語并不陌生,因為大家興趣愛好的原因,使大家每天都在與逆向工程這個詞語進行著斗爭,當然,我們這里使用的逆向工程這個概念,指的是計算機軟件方面的逆向工程,而沒有包括逆向工程這個詞語所包含的所有范圍。
逆向計算機軟件的世界
從某種程度上來說,計算機軟件的逆向主要過程為分析計算機程序,在分析計算機程序的過程中,逐漸建立起高于源代碼級別的更抽象層次的程序運行過程。使用一些有助于逆向工程的軟件產(chǎn)品,可以幫助我們來完善這個過程的建立,例如,我們通過使用IDA、OD等反編譯調(diào)試軟件,來尋找程序功能、尋找程序數(shù)據(jù)結(jié)構(gòu)等。
廣義上的逆向工程、案例
從廣義上來講,通過對某種產(chǎn)品的結(jié)構(gòu)、功能、運行機理來進行分析、分解、研究完后,制作出功能相近,但又不完全相同的產(chǎn)品,這屬于逆向工程的一個基本概念。
逆向工程的使用,多數(shù)人錯誤的認為會侵犯對方的知識產(chǎn)權(quán),但在實際應用上,卻往往又不會侵犯知識產(chǎn)權(quán)。例如,在集成電路領域,如果懷疑對手侵犯了自己的知識產(chǎn)權(quán),則可以完全使用逆向工程技術來搜集自己的證據(jù)。記得有次與朋友討論知識產(chǎn)權(quán)問題,在美國好像是產(chǎn)品相似度或者計算機程序代碼的相似度超過60%,即判定為侵犯知識產(chǎn)權(quán)。
在逆向工程針對硬件領域內(nèi),開發(fā)人體力學鼠標,就是一個很典型的例子。以微軟公司生產(chǎn)的鼠標器為例,就其功能而言,只需要有三個按鍵就可以滿足使用需要,但是,怎樣才能讓鼠標器的手感最好,而且經(jīng)過長時間使用也不易產(chǎn)生疲勞感卻是生產(chǎn)廠商需要認真考慮的問題。因此微軟公司首先根據(jù)人體工程學制作了幾個模型并交給使用者評估,然后根據(jù)評估意見對模型直接進行修改,直至修改到大家都滿意為止,最后再將模型數(shù)據(jù)利用逆向工程軟件 imageware 生成 cad 數(shù)據(jù)。當產(chǎn)品推向市場后,由于外觀新穎、曲線流暢,再加上手感也很好,符合人體工程學原理,因而迅速獲得用戶的廣泛認可,產(chǎn)品的市場占有率大幅度上升。
從某種角度上來解釋逆向工程這個概念的話,我們可以把逆向工程理解為:剖析一個產(chǎn)品,知道這個產(chǎn)品的工作原理。因此,在逆向工程這個詞語概念的大范圍下,逆向工程還包括硬件的逆向工程、軟件的逆向工程等等。對于,硬件的逆向工程而言,我們可以舉一個簡單的例子,
軟件的逆向工程是分析程序,力圖在比源代碼更高抽象層次上建立程序的表示過程,逆向工程是設計的恢復過程。逆向工程工具可以從已存在的程序中抽取數(shù)據(jù)結(jié)構(gòu)、體系結(jié)構(gòu)和程序設計信息。
逆向工程,通過對某種產(chǎn)品的結(jié)構(gòu)、功能、運作進行分析、分解、研究后,制作出功能相近,但又不完全一樣的產(chǎn)品過程。
逆向工程可能會被誤認為是對知識產(chǎn)權(quán)的嚴重侵害,但是在實際應用上,反而可能會保護知識產(chǎn)權(quán)所有者。例如在集成電路領域,如果懷疑某公司侵犯知識產(chǎn)權(quán),可以用逆向工程技術來尋找證據(jù)。
漏洞挖掘?
軟件方面的逆向工程,大家的第一印象就是漏洞挖掘技術,但在實際的應用過程中,漏洞挖掘在網(wǎng)絡安全逆向工程的應用方面,只屬于一個環(huán)節(jié)而已。