軟件逆向設計工程的工藝知識
發(fā)布日期: 2018-12-24 瀏覽人數(shù):
逆向設計工程,說得簡單一點,其實可以認為是一種產(chǎn)品設計技術再現(xiàn)過程,即對一項目標產(chǎn)品進行逆向分析及研究,從而演繹并得出該產(chǎn)品的處理流程、組織結構、功能特性及技術規(guī)格等設計要素,以制作出功能相近,但又不完全一樣的產(chǎn)品。而軟件逆向設計工程就是其中的一種方法,那么軟件逆向設計工程是怎么實現(xiàn)的呢?
軟件逆向設計工程的實現(xiàn)方法:
1、分析通過信息交換所得的觀察。
通常用于協(xié)議逆向設計工程,涉及使用總線分析器和數(shù)據(jù)包嗅探器。在接入計算機總線或網(wǎng)絡的連接,并成功截取通信數(shù)據(jù)后,可以對總線或網(wǎng)絡行為進行分析,以制造出擁有相同行為的通信實現(xiàn)。此法特別適用于設備驅動程序的逆向工程。有時,由硬件制造商特意所做的工具,如JTAG端口或各種調(diào)試工具,也有助于嵌入式系統(tǒng)的逆向工程。對于微軟的Windows系統(tǒng),受歡迎的底層調(diào)試器有SoftICE。
2、反匯編。
即使用反匯編器,把程序的原始機器碼,翻譯成較便于閱讀理解的匯編代碼。這適用于任何的計算機程序,對不熟悉機器碼的人特別有用。流行的相關工具有OllyDebug和IDA。
3、反編譯
即使用反編譯器,嘗試從程序的機器碼或字節(jié)碼,重現(xiàn)高級語言形式的源代碼。