IDA Pro使用初探

實驗環境

  • 操作機Windows xp
  • IDA Pro 6.8

實驗目的

  • 體驗初步的逆向工程。
  • 嘗試使用IDA Pro,掌握不同的文件載入方法
  • 初步理解IDA Pro數據庫文件的功能

實驗步驟

步驟1:雙擊打開IDA pro32位程序加載器

本步驟演示首次打開IDA Pro過程

首先,我們演示第一次打開IDA Pro,這個過程會彈出一些額外的對話框,爲了在以後的打開操作中節約時間和減少步驟,我們選擇默認不顯示這些對話框。

(1)雙擊打開桌面上IDA_Pro_v6.8文件夾,然後找到文件idaq.exe雙擊打開:

img

(2)在彈出的IDA關於信息框(About)點擊OK按鈕,在接下來彈出的支持信息框(Support Message)選中下次不顯示本信息(Don't show this message again)並點擊OK按鈕,確保下次不顯示本對話框。

img

(3)接下來會彈出IDA許可聲明對話框(IDA License),點擊我同意(I Agree)即可,之後不會再出現本對話框。

img

步驟2:使用新建方式載入目標程序

本步驟使用IDA Pro新建方式載入程序

其次,我們演示IDA Pro的加載文件功能,這裏通過新建方式載入待分析目標文件。

(1)步驟1操作完成後,會彈出IDA載入框(Quick Start),顯示IDA支持的三種加載文件方式,這裏首先嚐試使用新建方式(New):

img

載入方式功能介紹如下:

  • New(新建):選擇新建功能,IDA將啓動一個標準的文件打開對話框,根據用戶選擇,載入要分析的文件。
  • Go(運行):選擇運行功能,IDA將直接打開一個空白工作區,用戶可以直接將要分析的文件拖入工作去,或者使用File菜單中Open選項來打開文件。
  • Previous(上一個):選擇上一個功能,IDA會打開其下「最近使用過的文件」列表中的一個文件。

如果不存在之前打開的文件,該按鈕爲灰色禁用。

(2)在文件選擇對話框中依次點擊 桌面 - 001文件夾 - x86.exe,載入目標程序:

img

(3)在彈出的加載對話框,可以看到IDA對當前程序的默認加載方式和選項,直接點擊OK即可:

img

(4)接下來會彈出確認窗口,同樣選中下次不顯示本信息(Don't show this message again),並點擊OK按鈕:

img

(5)在接下來彈出的Hex-Rays信息框再點擊OK後,會要求設置更新選項,這裏直接點擊OK,默認即可。

img

步驟3:關閉IDA Pro並保存數據庫文件

本步驟關閉IDA Pro並保存數據庫文件

IDB數據庫文件中,記錄了用IDA Pro對該程序分析中的工作狀態,包括反彙編分析、區段掃描、用戶自定義結構、用戶自定義名稱、註釋等信息。

在下次的載入中,可以通過直接加載數據庫文件,獲取之前的工作和分析狀態,避免工作狀態的丟失。

然後,在載入操作完成後,我們演示關閉並保存IDA Pro數據庫文件。

(1)點擊右上角的關閉按鈕,彈出IDA Pro保存數據庫窗口(Save Database),使用默認選項,直接點擊OK即可以保存生成數據庫(.idb)文件。

img

數據庫打包選項功能介紹如下:

  • Don’t pack database(不打包數據庫):這個選項僅僅刷新對4個數據庫組件文件所做的更改,並不會創建IDB文件,不建議使用本選項。
  • Pack datatase(Stone)【打包數據庫(存儲)】:默認選項,會將4個數據庫組件文件存到一個IDB文件中,之前的任何IDB文件將會被立即覆蓋。

創建IDB文件後,4個數據庫組件文件將被刪除。

該選項不使用壓縮。

  • Pack database(Deflate)【打包數據庫(壓縮)】:和前一個選項類似,但是會壓縮數據庫文件。
  • Collect garbage(收集垃圾):如果勾選本選項,IDA會在關閉數據庫之前,從數據庫中刪除沒有用的內存頁面。

在選擇這個選項的同時,選擇Deflate選項可創建儘可能小的IDB文件。

  • DONT’T SAVE the database(不保存數據庫):如果勾選本選項,IDA將不會保存或覆蓋之前生成的IDB文件。

(2)再次打開桌面上的001文件夾,可以看到已經生成了x86.idb文件:

img

步驟4:使用IDA Pro加載64位程序並關閉

本步驟拖動使用IDA Pro加載64位程序並關閉

在實際使用過程中,可能由於某些誤操作,使得我們不想保存IDA Pro的工作狀態。

這時,除了用快照方式還原外(第二課會介紹),還可以在關閉時選擇不保存IDB數據庫文件,這樣本次載入時的所有工作操作都不會被記錄。

接下來,我們嘗試使用拖動加載的方式,來載入程序。

這次演示我們在關閉時,不保存IDB數據庫文件。

(1)雙擊打開桌面上的001文件夾,拖動x64.exe到IDA Pro文件夾下的iqaq64.exe上,加載64位程序:

img

(2)同樣使用默認選項,直接點擊OK:

img

(3)在接下來的任意一個對話框點擊No,選擇不加載程序調試信息pdb文件:

img

(4)成功完成對64位程序的加載,點擊右上角關閉按鈕,這次勾選不保存數據庫:

img

(5)可以看到001文件夾下面,沒有生成x64.exe對應的IDB文件。

如果之前已有IDB數據庫文件,將不會對之前的工作狀態進行覆蓋。

步驟5:使用IDA Pro加載IDB文件

本步驟使用IDA Pro打開IDB文件

在實際的IDA Pro操作過程中,如果逆向分析人員需要向其他人共享自己的工作狀態,一般採用向對方拷貝IDB文件的方式,不需要再拷貝原始文件就可以繼續分析。

最後,我們來演示僅僅通過載入IDB數據庫文件,進行程序分析。

(1)將文件夾中的x86.idb文件拷貝到桌面上,然後拖動到idaq.exe打開:

img

(2)同樣可以正常獲取彙編信息,在FILE菜單欄,可以看到最近打開的文件記錄:

img

實驗結果分析與總結

IDA Pro可以通過多種方式,加載分析目標程序,生成的IDB文件保存分析程序信息。

思考

1、嘗試使用idaq.exe打開64位程序,以及使用idaq64.exe打開32位程序,觀察結果。

2、自行嘗試使用Go方式打開待分析程序。

ps:以上內容來自i春秋 侵權刪除 僅供個人記錄筆記使用