逆向學習之IDA簡介
IDA是Windwos下眾多調試器工具中頗受歡迎的一種。IDA Pro首先是一個反匯編器,可以顯示二進制會變嗎(可執行文件或DLL(Dynamic Link Library),動態鏈接庫),它提供的某些高級功能使我們更容易理解匯編代碼。其次,它又是一個調試器,用戶可以逐條調試二進制文件中的指令,從而確定正在執行哪條指令,以及執行的順序等。
IDA PRO是一款交互式反編譯工具,功能強大。最主要的特性是交互和多處理器。IDA支持的文件類型豐富,除了常見的PE格式,還支持Windows,DOS,Unix,Mac等平台文件格式。
一、打開文件,關閉文件
打開文件


關閉程序

推薦使用第二種保存方式,如果不想保存,選擇最后一個選項

二、窗口介紹:圖形 文本 其他窗口介紹

| 導航條 | 意義 |
|---|---|
| 藍色 | 表示常規的指令函數 |
| 黑色 | 節與節之間的間隙 |
| 銀白色 | 數據內容 |
| 粉色 | 表示外部導入符號 |
| 暗黃色 | 表示ida未識別的內容 |
| IDA主界面 | 意義 |
| IDA View | 三種反匯編視圖:文本視圖、圖表視圖、路徑視圖 |
| Hex View | 十六進制窗口 |
| Imports | 導入函數窗口 |
| Struceures | 結構體窗口 |
| Exports | 導出函數窗口 |
| Enums | 枚舉窗口 |
| Strings |
三、常用快捷鍵
| 快捷鍵 | 功能說明 |
|---|---|
| Enter | 跟進函數實現,查看標號對應的地址 |
| 返回跟進處,返回上一個操作地址 | |
| A | 解釋光標處的地址為一個字符串的首地址 /C-->代碼/D-->數據/A-->ascii字符串/U-->解析成未定義的內容 |
| B | 十六進制與二進制數轉換 |
| C | 解釋光標處的地址為一條指令 |
| D | 解釋光標處的地址為數據,每按一次將會轉換這個地址的數據長度 |
| G | 快速查找對應地址 |
| H | 十六進制與十進制數轉換 |
| K | 將數據解釋為棧變量 |
| : | 添加注釋 |
| R | 編碼轉換 |
| M | 解釋為枚舉成員 |
| N | 重新命名 |
| O | 解釋地址為數據段偏移量,用於字符串標號 |
| T | 解釋數據為一個結構體成員 |
| X | 轉換視圖到交叉參考模式 |
| Shift + F9 | 添加結構體 |
| 空格 | 切換文本視圖與圖表視圖 |
| ALT + M | 添加標簽 |
| CTRL + M | 查看標簽 |
| CTRL + S | 查看段的信息 |
| 冒號 | 常規注釋 |
| CTRL + F12 | 函數調用圖 |
| Ctrl + F9 | 導入c頭文件 |
| F5 | 查看偽代碼 |
| Alt+T | 搜索文本 |
| Alt+B | 搜索十六進制 |
| ctrl+shift+w | 拍攝IDA快照 |
| u | undefine,取消定義函數、代碼、數據的定義 |
| view–>open subviews | 可以恢復你無意中關閉的數據顯示窗口 |
| windows–>reset desktop | 可以恢復初始ida布局 |
| option–>font | option–>font |
| option–>general->Auto comments | 自動添加反匯編注釋 |
操作演示
直接按空格
顯示硬編碼:默認對於指令部分是不顯示機器碼的




CTRL + F12:函數調用圖

F12 流程圖

