IDA 逆向工程 反彙編使用
IDA pro 7.0版本
from:freebuf
用到的工具有IDA pro 7.0 ,被反彙編的是百度雲(BaiduNetdisk_5.6.1.2.exe)。
首先,IDA pro的長相如下:
共有(File , Edit , Jump , Search , View , Debugger , Options , Windows , Help)9個模組,還有下面的諸多小選單。
現在我們點選File,選擇Open開啟一個檔案,這裡我們選擇百度雲盤PC端安裝程式,出現如下圖示:
這裡我們直接預設OK即可。
此時,我們看到的檢視是這樣的:
然後我們對各個部分進行標號,單獨進行介紹:
第一部分表示的是對不同程式碼塊使用不同的顏色進行區分,我們可以直接點選相應的顏色塊進行不同程式碼塊的定位。
藍色:表示程式碼段。
棕色:表示資料段。
紅色:表示核心。
第二部分表示該程式的函式表,雙擊後可檢視詳細資訊。
該函式對應的IDA View-A如下:
第三部分對應的就是整體程式或者某個函式的圖示概述形式,可以大體把握功能和結構的走向。對整體的脫殼逆向有很大的幫助。
第四部分主要可以顯示以下6部分資訊:
(1)IDA View-A
(2)Hex View-1
(3)Structures
(4)Enums
(5)Imports
(6)Exports
其中IDA View-A表示的就是某個函式的圖示架構,可以檢視程式的邏輯樹形圖,把程式的結構更人性化地顯示出來,方便我們的分析。
具體表示形式,上文中有截圖可參考。
在Hex View-1中可以檢視16進位制程式碼,方便定位程式碼後使用其他工具修改,具體表示如下圖所示:
在Stuuctures中可以檢視程式的結構體:
在Enums中可以檢視列舉資訊:
在Imports中可以檢視到輸入函式,匯入表即程式中呼叫到的外面的函式:
在Exports中可以檢視到輸出函式:
以上就是IDA主面板中的各個部分的功能介紹了。
接下來我們介紹9個選單模組,即:
File , Edit , Jump , Search , View , Debugger , Options , Windows , Help
1.File 是用來開啟,新建,裝載一個應用程式的,這大家都知道的。
2.Edit 是用來編輯反彙編程式碼的,可以複製,篩選什麼的。
3.Jump 是用來跳轉的,可以有很多種型別的跳轉,比如跳轉到上一個位置或者下一個位置,跳轉到某個指定的地址。還可以根據名字,函式來進行跳轉,跳轉到一個新的視窗,跳轉某一個偏移量等等,總之很多了,具體大家可以慢慢積累了。這個模組就比較重要了。
4.Serach 是用來搜尋的。
5.View 是用來選擇顯示方式的,或者顯示某一特定模組資訊的。比如以樹形邏輯圖顯示,或者16進位制形式顯示。還可以單獨顯示某一特定資訊,比如輸入或者輸出表等。
6.Debugger ,偵錯程式被整合在IDA中,首先我們使用IDA裝入檔案,來生成資料庫,使用者可以使用反彙編功能,檢視所有反彙編資訊,這些均可以在偵錯程式中進行和使用。
7.Options ,在這裡可以進行一下常規性的設定。
8.Windows,
9.Help,使用IDA的一些幫助文件,檢查更新等等。
使用IDA的一個大體步驟:
1.裝入檔案或程式
2.指令斷點
3.程式執行
4.分析堆疊
5.新增監視
6.進行地址分析
7.單步跟蹤
8.找到bug
9.使用硬體斷點進行bug確認
本期就介紹到這裡了,IDA有很多高階功能,會在之後的實戰文章中進行講解。
下一期我們將講解《逆向動態除錯之Ollydbg的使用》。
學完彙編,IDA,Ollydug我們就可以進行簡單的逆向分析了。