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