1. 程式人生 > >IDA 逆向工程 反彙編使用

IDA 逆向工程 反彙編使用

IDA pro 7.0版本

from:freebuf

用到的工具有IDA pro 7.0  ,被反彙編的是百度雲(BaiduNetdisk_5.6.1.2.exe)。

首先,IDA pro的長相如下:

image.png

共有(File , Edit , Jump , Search , View , Debugger , Options , Windows , Help)9個模組,還有下面的諸多小選單。

現在我們點選File,選擇Open開啟一個檔案,這裡我們選擇百度雲盤PC端安裝程式,出現如下圖示:

image.png

這裡我們直接預設OK即可。

此時,我們看到的檢視是這樣的:

image.png

然後我們對各個部分進行標號,單獨進行介紹:

image.png

第一部分表示的是對不同程式碼塊使用不同的顏色進行區分,我們可以直接點選相應的顏色塊進行不同程式碼塊的定位。

藍色:表示程式碼段。

棕色:表示資料段。

紅色:表示核心。

第二部分表示該程式的函式表,雙擊後可檢視詳細資訊。

image.png

該函式對應的IDA View-A如下:

image.png

第三部分對應的就是整體程式或者某個函式的圖示概述形式,可以大體把握功能和結構的走向。對整體的脫殼逆向有很大的幫助。

image.png

第四部分主要可以顯示以下6部分資訊:

(1)IDA View-A

(2)Hex View-1

(3)Structures

(4)Enums

(5)Imports

(6)Exports

其中IDA View-A表示的就是某個函式的圖示架構,可以檢視程式的邏輯樹形圖,把程式的結構更人性化地顯示出來,方便我們的分析。

具體表示形式,上文中有截圖可參考。

在Hex View-1中可以檢視16進位制程式碼,方便定位程式碼後使用其他工具修改,具體表示如下圖所示:

image.png

在Stuuctures中可以檢視程式的結構體:

image.png

在Enums中可以檢視列舉資訊:

image.png

在Imports中可以檢視到輸入函式,匯入表即程式中呼叫到的外面的函式:

image.png

在Exports中可以檢視到輸出函式:

image.png

以上就是IDA主面板中的各個部分的功能介紹了。

接下來我們介紹9個選單模組,即:

File , Edit , Jump , Search , View , Debugger , Options , Windows , Help

image.png

1.File 是用來開啟,新建,裝載一個應用程式的,這大家都知道的。

2.Edit 是用來編輯反彙編程式碼的,可以複製,篩選什麼的。

3.Jump 是用來跳轉的,可以有很多種型別的跳轉,比如跳轉到上一個位置或者下一個位置,跳轉到某個指定的地址。還可以根據名字,函式來進行跳轉,跳轉到一個新的視窗,跳轉某一個偏移量等等,總之很多了,具體大家可以慢慢積累了。這個模組就比較重要了。

4.Serach 是用來搜尋的。

5.View 是用來選擇顯示方式的,或者顯示某一特定模組資訊的。比如以樹形邏輯圖顯示,或者16進位制形式顯示。還可以單獨顯示某一特定資訊,比如輸入或者輸出表等。

6.Debugger ,偵錯程式被整合在IDA中,首先我們使用IDA裝入檔案,來生成資料庫,使用者可以使用反彙編功能,檢視所有反彙編資訊,這些均可以在偵錯程式中進行和使用。

image.png

7.Options ,在這裡可以進行一下常規性的設定。

8.Windows,

9.Help,使用IDA的一些幫助文件,檢查更新等等。


使用IDA的一個大體步驟:

1.裝入檔案或程式

2.指令斷點

3.程式執行

4.分析堆疊

5.新增監視

6.進行地址分析

7.單步跟蹤

8.找到bug

9.使用硬體斷點進行bug確認


本期就介紹到這裡了,IDA有很多高階功能,會在之後的實戰文章中進行講解。

下一期我們將講解《逆向動態除錯之Ollydbg的使用》。

學完彙編,IDA,Ollydug我們就可以進行簡單的逆向分析了。