隨想錄(OllyDbg和IDA Pro的配合使用)

【 聲明:版權全部,歡迎轉載,請勿用於商業用途。  聯繫信箱:feixiaoxing @163.com】html

 

    在軟件處理中,OllyDbg和IDA Pro通常是配合使用的。前者主要用於動態的程序調試,後者主要用於靜態的代碼分析。那麼,若是遇到實際程序,該怎麼處理呢?邏輯通常是這樣的,函數

 

一、首先用OllyDbg驗證此程序是否可以運行優化

    分析程序的前提通常是判斷程序是否能夠運行起來。若是程序自己就是錯的,那麼就沒有分析的必要了。固然爲了防止木馬、病毒,運行通常是在虛擬機裏面進行的,這樣不會對OS代碼什麼風險。spa

 

二、利用IDA Pro尋找可能的關鍵路徑.net

    對於比較簡單的程序,關鍵路徑是比較好找的,每每是從頭執行到尾。就算是複雜的程序,關鍵路徑每每就那麼幾個,依次處理就能夠了。這個時候經過字符串變量查找就是不錯的一個方法。3d

 

三、利用OllyDbg + F12暫停鍵獲取關鍵路徑調試

    代碼執行路徑不少,可是每每關鍵的就1條,這個時候用OD暫停來分析,是最好的一個方法。htm

 

四、查看堆棧,獲取函數調用路徑和變量信息blog

    回溯整個堆棧內容,根據ip地址依次查看函數的調用關係,而且將堆棧內容和軟件功能參數進行聯繫。ip

 

五、獲取關鍵函數反彙編代碼

    此時,若是已經獲取關鍵函數,那麼就能夠利用IDA Pro的F5反彙編功能,獲取對應的C函數。

 

六、將C函數和具體的物理意義聯繫起來

    IDA Pro逆向生成的函數只是邏輯層面的東西,具體的物理意義還須要查看先後的調用邏輯。

 

七、驗證優化、修改後的C函數是否正確

    不少時候IDA優化後的函數冗餘代碼太多,須要刪除、合併。爲了驗證代碼的正確性,使用OllyDbg不停地進行數據驗證。

 

八、直接修改OllyDbg代碼,查看修改效果

    OllyDbg的一個優點就是能夠當即修改內存、保存到文件、從新加載,這對於提高逆向者的信心是很重要的。

 

九、繼續使用IDA分析,對函數、變量添加註釋、說明

    等到全部關鍵路徑上面的代碼都已經被理解和註釋了,而且用OllyDbg證實是正確的,這個時候才說明逆向成功。OllyDbg實時修改的能力很強,可是IDA Pro抽象邏輯分析能力很厲害,因此通常二者是相互補充的,不存在一個徹底代替另一個的狀況。現實場景中二者也是交叉使用的。

 

 

發佈了569 篇原創文章 · 獲贊 3651 · 訪問量 479萬+
相關文章
相關標籤/搜索