通過一個例子介紹 IDA pro 的簡單使用

 

From:https://zhuanlan.zhihu.com/p/80751993

 

IDA_Pro_v7.2_Hgl+F5+x86+aarch64:鏈接:https://pan.baidu.com/s/1wGYAORBUbqOsohuQLnNfiw  提取碼: t2ci

 

通過一個簡單的題來了解一下IDA的基本操作,題目是bugku的一個簡單的逆向,Easy_re。

將題目下載下來,發現是一個exe可執行文件,先運行一下看看

有一些字符串提示,讓你輸入一個字符串,提示輸入flag,隨便輸入幾個字符,看一下有什麼提示。

然後開始進入分析階段,首先通過Detect It Easy這個軟件查看一下程序的基本信息。

這一步我們主要想看一下程序時32位還是64位的,通過上圖可以看到程序屬於32位程序。然後我們通過IDA對程序進行分析,IDA是一個靜態反編譯軟件,用來靜態的分析軟件,我們在32位的IDA中打開re1.exe(如果程序時64位的需要用64位的IDA打開),他會彈出彈窗,這裏不用管,一路點“是(或者ok)”就行了,然後界面如下。

一進來,最大的那片區域爲反彙編窗口,左邊爲函數窗口,在反彙編窗口按空格鍵,會在圖形視圖和列表視圖之間切換。然後分析程序一般先從字符串入手,打開字符串窗口,View --> open subviews --> Strings,或者快捷鍵shift+F12

程序中往往包含很多字符串資源,這些資源存在於PE文件的rdata段,可以看到運行程序時出現過的“DUTCTF”字符串,雙擊它找到他的位置

 

 

可以看到aDutctf字符串周圍還有很多字符串,我們把它們都變成可顯示字符,結果如下,由於本題比較簡單,所以直接出現了flag。

當然,本文是爲了介紹IDA的使用,所以我們繼續往下分析,找到關鍵的字符串後,在字符串的位置,按快捷鍵x,查看程序在哪裏引用了它,比如這道題沒有給出flag,我們需要在提示信息處(也就是aDutctf的位置)按快捷鍵x,可以看到只有一處引用了它。

我們跟進去看一下,找到了引用它的位置,這一步是爲了找到程序的主要邏輯在哪,因爲有時候IDA可能分析不出函數名來,你就沒辦法通過左邊的函數窗口定位程序的主要邏輯位置,也有可能程序的主要邏輯不在main函數裏,在一個其他的函數裏。

所以說,先運行程序,找到程序運行時出現的提示字符,然後定位提示字符出現的位置,用這樣的方法來找程序的主要邏輯比較靠譜一些。

找到了關鍵位置後,發現是一堆彙編代碼,看不懂怎麼辦?IDA的強大之處還在於他可以將分析的程序以僞代碼的形式給出,快捷鍵爲F5(不是所有程序都能以僞代碼的形式顯示,也不是所有函數都能以僞代碼的形式顯示,如果沒辦法顯示僞代碼,那隻能剛彙編了),下一步就是分析程序的邏輯了,至於怎麼分析,這裏就不多贅述了。

在關閉IDA的時候他會提示你是否保存database,你可以選擇保存,下次用IDA打開這個程序的時候可以加載這個數據庫,裏面保存了你上次的操作。

下面給出了一些常用的快捷鍵

參考:IDA Pro權威指南 (第2版)

加入極客方舟逆向新手羣(365990646)

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章