IDA Pro
交互式反匯編器專業版(Interactive Disassembler Professional),人們常稱其為IDA Pro,或簡稱為IDA。是最棒的一個靜態反編譯軟件(當然動態也可以),為眾多0day世界的成員和ShellCode安全分析人士不可缺少的利器!交叉Windows或Linux WinCE MacOS平台主機來分析程序。IDA Pro已經成為事實上的分析敵意代碼的標准並讓其自身迅速成為攻擊研究領域的重要工具。它支持數十種CPU指令集其中包括Intel x86,x64,MIPS,PowerPC,ARM,Z80,68000,c8051等等。
本文對此僅做簡單介紹,並且將持續更新(小博主學到哪就會更新到哪),相當於學習筆記的存在,不自量力,拿出與大家分享一下(除眾多大佬處引用外還摻雜個人理解故內容不是100%正確):
當打開一個文件時,會出現:
列表中顯示適合處理選定文件的IDA加載器,Binary file(二進制文件)最低級的加載文件方式。一般默認第一個為最佳選項。
彩色水平帶是IDA概括導航欄,被加載文件地址空間線性視圖。
反匯編視圖有兩種,圖形模式和列表模式(快捷鍵空格切換)
輸出窗口顯示IDA輸出信息
函數窗口

可能有時你只寫了個Hello World!卻出現一大堆函數,這是因為你在開頭引入的庫函數#include<stdio.h>等等,可能在實際運行中根本沒有調用但是在編譯中鏈接上了,所以就算沒有調用也會出現。
向右滑
列舉IDA在數據庫識別的每一個函數
IDA圖形視圖
紅色:分支語句為假的執行分支。
綠色:分支語句為真時執行分支。
IDA文本視圖
窗口左邊部分叫做箭頭窗口,用於描述函數中的非線性流程。實線箭頭表示非條件跳轉,虛線箭頭表示條件跳轉。如果一個跳轉將控制權交給程序中的某個地址,這時會使用粗線(實線或虛線)。出現逆向流程,通常表示程序中存在循環
十六進制窗口
第一個16進制窗口會與第一個反匯編窗口同步。如果一個反匯編窗口與一個十六進制窗口同步,在一個窗口滾動鼠標,另一個窗口也會滾動到相應位置(同一個虛擬地址)。如果在反匯編窗口選中一個項目,十六進制窗口中的對應字節也將突出顯示。
導出窗口
導出窗口列出文件的入口
與函數窗口相似,列出被分析的二進制文件導入的所有函數
結構體窗口
顯示IDA在二進制文件中使用的任何復雜的數據結構的布局
枚舉窗口
顯示枚舉類型
以上窗口一開始自動打開
手動打開
雙擊相應類型自動跳轉至匯編相應處
String窗口
從二進制文件中提取字符串以及所在地址(掃描風格可改)
names窗口
列舉所有全局名稱
-
F,常規函數。IDA認為這些函數不屬於庫函數
-
L,庫函數。IDA通過簽名匹配算法來識別庫函數
-
I,導入的名稱,通常為共享庫導入的函數名稱
-
C,命名代碼。
-
D,數據
-
A,字符串數據
段窗口
段名稱,起始與結束地點,許可標志。
IDA導航
使用jump —>jump to address命令或在處於活動狀態的反匯編窗口按下熱鍵G,均可打開Jump toAddress對話框
歷史記錄
前進和后退導航功能(基於你瀏覽反匯編窗口的順序)。每次你導航到反匯編窗口中的一個新位置,你當前的位置就會添加到位置列表中。有兩種方式菜單操作可用於遍歷這個列表。首先,Jump —>Jump to previous Position
ESC(只能在反匯編使用,其他窗口為關閉當前窗口)
搜索數據庫
文本搜索
IDA文本搜索相當於對反匯編列表窗口進行子字符串搜索。通過Search—>Text命令啟動文本搜索或者Alt+T。搜搜限制於僅查找完整的詞,並且能夠匹配反匯編行中的任何完整的詞,包括操作碼助記符或常量。最后使用Ctrl+T或者Search—>Next Text命令可重復前一項搜索,以找到下一個匹配。
二進制搜索
.......
IDA顯示中文字符串另一個老師傅寫的,引用一下
注:圖片來源於網絡,若侵權刪除。(懶得自己傳圖片)