數據逆向(一)——開篇

       許多人將軟件逆向工程看做代碼逆向工程,然而軟件被看做是“軟件=代碼+數據”。那麼對等的就應存在“數據逆向工程”,雖然數據逆向工程與代碼逆向工程有交叉部分,但是它們各有側重。代碼逆向工程主要利用反彙編分析代碼的執行流程。數據逆向工程重點在於數據結構和數據內容。

       二進制文件的數據可以逆向,卻不可能反彙編,因爲數據連續的靜靜地躺在棧區和數據段,但爲了分析數據,我們又不得不利用代碼反彙編,通過代碼意圖推理出數據結構。

 

分析方法

   1. 黑盒分析:不通過分析代碼執行流向,直接觀察二進制文件,獲取數據結構分析,比如我們經常利用winhex,IDA等軟件觀察。

  

   2.白盒分析:俗稱反彙編,我就不解釋了。

 

代碼和數據的區別

   假設內存中有字節碼53H、56H、75H,若是當指令處理,則表示push ebx、push esi、push edi,當然作爲數據也是可以的。

   至於如何區分呢?

   一般來說通過動態反彙編是最爲準確的,當然也可以不必那麼複雜,如果你的經驗足夠豐富黑盒分析有時異常簡潔。靜態反彙編結合了強兩者的優點,但是想IDA這樣強大的靜態分析軟件,也不能100%保證分析正確

發佈了41 篇原創文章 · 獲贊 4 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章