IDA教程01_基礎(01-05)


ZC: 我的IDA:Version 6.8.150423 (32-bit)  英文版

ZC: 如何找 加載進IDA的程序的入口???如 WinMain / main / dllmain 之類的??

ZC: IDA 反匯編窗口"Text view" 里面顯示的地址,是 文件對齊的地址,還是 內存對齊的地址?偏移地址?虛擬地址?

 

1、反匯編簡介

  【1888】拖入驅動直接保持 默認選項即可:

  (核心選項一般不要亂動)

  【2050】導入符號表,選擇"YES" (一般需要反匯編的代碼應該都不會有pdb文件提供的吧...  這里載入了符號表,是不是能提高 IDA的分析效率??)

  【2090】視頻中,加載 .sys后 直接在 "IDA View-A"界面 中顯示的是流程圖形式,而非匯編代碼形式,我查到 這兩種形式的切換快捷鍵是 空格(Space)

  【2630】各個顏色 所表示的 段 (ZC; 貌似 和我現在的IDA中的不同...)

  【2780】↓ / ↑ 的箭頭,是 跳轉 的意思 (ZC: 我怎么覺得是 表示 此處是從哪里跳轉來的...)

  【3155】一般 代碼段的開始,".exe"是0x004?????,".sys"是0x0001????,".dll"是 70開頭的

  【3260】IDA的一個好處,一改 全部 都改。【3270】演示 重命名 函數名

  【3700】IDA的一個強大的功能,兩種反匯編分析的方法:線性掃描,遞歸下降

  【完畢】

2、

  分類工具

  【188】Fi

  【480】PETools (ZC: 這個沒接觸過...)【515】也可以 查看PE文件信息 (ZC: 看起來 好像LoadPE)【600】PETools插件

  【640】LoadPE

  【745】peid  【832】PEID的插件"Ktypto ANALyzer" 可以查它的算法

 摘要工具

  【910】NM、ldd、(ZC: id算不算?)、objdump 以后再講,這些工具 都要結合代碼來講 不然都是白說

 深度檢測工具

  【1000】string、反匯編器 nasm/masm 中自帶的反匯編工具 ndisasm/distorm

 

  【1450】IDA就是集這些工具於一體。  只有代碼段 才能轉換為 視圖模式 來查看

  【1655】將數據段里面的信息 轉換成 C語言風格的字符串  【1725】選中 字符串,再把它變回去【1770】ZC: 轉成了unicode風格了...貌似沒有變回去啊

  【1790】"Save database"  【1950】選擇"Don't pack database"和"DON'T SAVE the database"  【2000】不保存的話,IDA生成的 ?.id0和?.id1和?.nam和?.til 會消失(確實消失了)

  【完畢】

3、

  【377】講解“歡迎使用 IDA”界面:"新建"、"運行"、"載入"、"下次啟動不再顯示這個對話框(D)" 

    【450】點擊"新建" 里面的內容

    【690】點擊"運行" 里面的內容

    【800】點擊"載入",選取 以前的工程 進行載入

    【940】"載入一個新文件"

  【2060】"運行" --> "打開" 之前的驅動文件,產生4個文件:

    【2240】?.id0:二叉樹形式的數據庫

    【2260】?.id1:包含描述每個程序字節的標記

    【2580】?.nam:包含"IDA NAME"窗口的數據庫("IDA NAME"窗口 顯示的是 給定程序的位置 和索引信息)

    【2680】?.til:本地數據庫有關信息

    用於 關閉IDA時,保存信息

  【3130】Program DataBase :?.pdb文件

  【3555】關閉IDA時,彈出的窗口

    【4100】"Pack database(Deflate)"+"Collect garbage" ==> 盡可能創建一個小的 ??.idb文件(不僅要將文件壓縮,還要將垃圾刪掉),一般在 磁盤空間不足的情況下才這么用

    【4158】一般直接選擇 "Pack database(Store)"即可(ZC: 其它都不要勾選)

  【4280】打開IDA -->"運行" --> "打開"--> 直接選擇剛才生成的 sys.idb(或者 直接將 sys.idb拖到IDA界面中)

  【4460】"IDA has found unpacked version of database  C:\DriverTest\sys\XXXXX\XXXX.idb on disk . Plese choose

    restore  continue  cancel"

    【4870】選擇恢復數據(restore)  又會彈出:

    “

    Data for file C:\xxxxx\xxxxx\xxx.id0 isn't closed, do you want IDA repair it ?

    Pleae note that repaired database may still have problem .

    ”

  【5470】遠控編程

  【5580】“The best solution is to use packed database or a bakup

    yes  no  cancel  help”

  【完畢】

4、

  【333】工具欄

  【750】IDA狀況 導航欄(ZC: 彩色的那一條),又叫做 導航帶:是被加載的文件的空間的一個線性視圖,默認情況下 它會呈現出 二進制整個的地址的范圍(段)

    【960】有縮放功能

    【1088】IDA-->Options -->Colors... --> "Navigation band"(導航欄)  可以調整顏色,默認就可以

  ZC: 在我現在用的IDA里面,下面這些 標簽欄都可以通過 IDA--> View --> "Open subviews" 來打開

  【1175】標簽欄

  【1640】反匯編視圖 ("IDA View-A"、"IDA View-B"、...)

    【1850】IDA-->Option-->General...(常規) --> Graph選項卡 --> "Use graph view by default"(默認使用圖形查看方式)

  【2165】消息窗口

  【2310】IDA還有另外兩種數據窗口 Names & Strings 

 

  【2490】重新打開IDA,看看 它在分析文件時 會有一些什么動作

    【2560】Loading

    【2665】You may start to explore the input file right now.

    【2800】The initial autoanalysis has been finished.

  【3190】IDA-->Windows -->"Reset desktop"

  【3240】IDA-->Windows -->"Save desktop..."

  【3420】IDA-->Font... (默認的信息為:Font:Fixedsys ; Style:Normal ; Size:10)

  【3490】IDA的Bug

  【完畢】

5、

  【55】ZC: 視頻中顯示,當前時間 20100609

  【848】交叉引用的概念  【870】XREF 這個就是交叉引用,雙擊"↑"會跳轉

  【990】IDA不提供 撤銷功能  (ZC: 還是 備份一個,再弄 比較放心)

  【1720】立即窗口

  【1880】IDA中 非常好用的鍵 ESC鍵.  【1930】ESC鍵 在反匯編窗口 和 瀏覽器的后退鍵 有點相似

    【2080】ZC: 在 反匯編窗口的"Text view"中,ESC鍵 功能使用成功。貌似 只有跳轉后 再按EAC鍵才有用?

    【2150】它在 導航反匯編的時候是非常有用的,在其他窗口中 很有可能是用於關閉窗口

  【2805】基本塊,不包含分支,執行大量的指令(序列),都具有唯一的入口點

  【3050】IDA在 反匯編窗口("Graph view"和"Text view"中都有) 使用不同顏色的箭頭,指向 各個塊 流動的方向

    【3280】跳轉 一般2種顏色:綠色、紅色。綠色 箭頭 --> Yes,紅色 箭頭--> No

    【3390】藍色 箭頭。

  【3435】IDA(反匯編窗口) 每次顯示一個函數

  【3480】IDA(反匯編窗口),滾輪 --> 滾動,Ctrl+滾輪 --> 調整視圖大小

    【3540】Ctrl和"+",Ctrl和"-"   --> 調整視圖大小 (ZC: 是指小鍵盤的"+"&"-"??我試了下筆記本上的,把代碼弄沒了,還好重開IDA代碼還在...這個還是不要亂按的好...)

  【3740】IDA使用一種術語 "流"(也叫做"正常流"/"普通流"),表示 指令默認持續執行

    【3785】跳轉表(流?) 用來表示 (極有可能)跳轉到的非連續性的位置。【3820】跳轉流 會調用子例程

  【3900】IDA 也支持 改變流程  【3920】(反匯編窗口"Graph view")用鼠標拖動箭頭,用它來 改變流程方向

    【4020】在按住shift鍵,在任何地方雙擊鼠標 就可以在這個地方增加一個其他連接點

    【4180】在 連接點 這個地方,可以任意增加 接點

  ZC: 上面 "流" 開始的 他的演示,都沒有成功...

  【4280】希望還原(反匯編窗口"Graph view")的默認圖形,右擊圖形--> 布局圖(ZC: 英文是"Layout graph")

  【4580】折疊標簽欄,右擊 標簽欄"IDA View-A"。ZC: 貌似我的IDA 沒有這個

  【4750】打開另一個 反匯編窗口:IDA-->View -->"Open subviews..." --> Disassembly

  【5130】(反匯編窗口"Text view") 有虛線和(紅色)實線,【5240】和 反匯編窗口"Grpah view" 中的跳轉的箭頭 是一一對應的  【5485】用於表示 代碼中的非線性跳轉/非線性流程

  【5355】通常虛擬地址 就是 區域名(ZC: 區段名 吧?)+冒號+地址

  【5560】注釋  ZC: IDA的注釋能跳轉,我能添加的注釋能跳轉嗎?

    【5570】我們添加注釋,按住shift + 冒號

  【5910】Names 窗口,枚舉所有 程序里面的函數。

    【5940】圖標"F":常規函數

    【5947】圖標"A":字符串

    【5960】圖標"I"(ZC: 大寫字母I):導入函數(導入表)

    【6030】有的 圖標"F"(常規函數) 它是來自於庫(庫函數)

    【6050】圖標"L":庫函數 動態鏈接庫函數(比如NtDll.dll里面的)

    【6085】圖標"D":全局的命名代碼

    【6200】雙擊 可跳轉

  【6600】IDA 起的函數名 不在 Names窗口 中顯示

 

  【6930】消息窗口

    【7100】這種操作,一般使用在 開發腳本/插件 時

 

  【7230】Strings窗口

    【7490】選中一個字符串-->右擊-->"Setup..." (設置)

    【7850】選項"Display only defined strings"

    【7955】選項"Ignore instructions/data definitions"

  【完畢】

 

ZZ

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM