IDA筆記

前面提到好幾次IDA,這個工具算是反彙編界的神器了。更加細節的內容可以看《IDA Pro權威指南》 ,這裏只是一些筆記而已。

導航條:

藍色    標識常規的指令函數

黑色   節與節之間的間隙

銀白色   數據內容

粉色   表示外部導入符號

暗黃色   表示ida未識別的內容,可能是一些dcb指令,這時候可以選擇

              C  將當前地址處的數據解析成代碼

              P  

 

IDA主界面:

IDA View 3種反彙編視圖:文本視圖,圖標視圖,路徑視圖

HexView   十六進制編輯/查看窗口

Imports 導入函數窗口

Structures 結構體窗口

Exports 導出函數窗口

Enums 枚舉窗口

Strings 字符串窗口

 

IDA調試界面:下面的界面是IDA進入調試狀態纔會出現的,界面顯示一些內存,寄存器等動態信息

反彙編窗口: 顯示運行指令,數據等

十六進制窗口,用於查看/修改內存數據和代碼

寄存器窗口:查看/修改寄存器的值

模塊窗口:模塊路徑和地址

線程窗口:顯示線程信息

棧窗口

輸出信息窗口

 

 

常用功能和快捷鍵:

空格鍵: 切換反彙編文本視圖和圖表視圖

ESC: 返回上一個操作地址

G:搜索地址和符號

N:對符號進行重命名

冒號/分號(:;)  常規註釋

Alt + M: 添加標籤

Ctrl + M: 查看標籤

Ctrl + S: 查看段信息

代碼數據切換:

C-->代碼

D-->數據

A-->ascll 字符串

U-->解析成未定義的內容

X:查看交叉引用

F5:32位中的查看僞代碼功能,雖然不太準確,有人說是神奇的F5插件

Alt+T: 搜索文本

Alt+B:搜索十六進制

 

 

導入jni.h 分析jni庫函數,這裏記錄下導入方法:

步驟1:

檢點修改jni.h,註釋第27行的#include<stdarg.h>,還有將1122行的#define JNIEXPORT_attribute_((visibility("default"))) 改成 #define JNIEXPORT ,修改完後可以成功導入

步驟2:

點擊IDA Pro 菜單項 "file -->  load file --> parse c header file ",選擇jni.h 頭文件

步驟3:

點擊IDA Pro 主界面上的“structures”選項卡,然後按下Insert鍵打開“create structure/union”對話框導入兩個接口體的接口,點擊界面上的“add standard  structure” 按鈕,在打開的結構體選擇對話框中選擇 JNINativeInterface並點擊OK返回,同理JNIInvokeInterface結構體也一樣。

步驟4:

在0x29C等調用Env 的地方右鍵,出現jni函數。因爲很多時候只是這樣一個0x29C 的數我們很難知道確切的含義。

僞C代碼窗口:

右鍵

comment 添加註釋

copy to  -assembly  把僞c代碼複製到反彙編窗口中的彙編代碼,如下所示,可以幫助分析。

IDA可以修改so 的hex 來實現修改so,edit,然後edit  -->  patch  program --> apply patches into file

但是依舊是用winhex 和  notepad++ 這種編輯工具來進行編輯。 

 

 

IDA調試常用功能:

1、斷點和運行:

設置斷點 F2

設置斷點不可用 Disable breakpoint

編輯斷點 Edit breakpoint

刪除斷點  Delete breakpoint

繼續運行 F9

查看當前所有斷點  Ctrl + Alt +B

 2、單步模式

單步步入 F7

單步步過 F8

運行到函數的返回地址  Ctrl + F7

運行到光標處  F4

 

發佈了26 篇原創文章 · 獲贊 10 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章