IDA Pro 权威指南阅读摘要1
IDA Pro 權(quán)威指南閱讀摘要1
文件加載
使用File->Open命令打開(kāi)一個(gè)新文件時(shí),會(huì)看到加載對(duì)話框。
Binary File (二進(jìn)制文件)是加載類(lèi)型列表的最后一個(gè)選項(xiàng),它是IDA加載無(wú)法識(shí)別的文件的默認(rèn)選項(xiàng)。
在Processor Type下拉菜單中可以指定在反匯編過(guò)程中使用的處理器模塊(在IDA的procs目錄中)。
多數(shù)情況下,IDA將根據(jù)它從可執(zhí)行文件的頭中讀取到的信息,選擇合適的處理器。
如果同時(shí)選擇了二進(jìn)制文件輸入格式和一種x86系列處理器,Loading Segment(加載段)和Loading Offset(加載偏移量)字段將處于活動(dòng)狀態(tài)。
?
使用二進(jìn)制文件加載器
如果選擇使用二進(jìn)制加載器,沒(méi)有文件頭信息引導(dǎo)分析過(guò)程。
需要使用二進(jìn)制加載器的情形包括:分析從網(wǎng)絡(luò)數(shù)據(jù)包或日志文件中提取出來(lái)的ROM鏡像和破解程序負(fù)載。
如果選擇一個(gè)x86類(lèi)型的處理器,則必須在加載對(duì)話框的Loading Segment和Loading Offset字段中指定基址信息。
IDA會(huì)提醒用戶指定文件中的一個(gè)地址作為入口點(diǎn)。
?
基本IDA導(dǎo)航
IDA將生成并顯示一個(gè)完整的交叉引用列表。多數(shù)情況下,到導(dǎo)航到感興趣的位置,只需雙擊鼠標(biāo)。
反匯編程序時(shí),程序的每個(gè)位置都分配到了一個(gè)虛擬地址。只要提供希望訪問(wèn)的位置的虛擬地址,就可以導(dǎo)航到程序的任何地方,但是大量地址不容易記住。早期的程序員給他們希望引用的程序位置分配符號(hào)名稱。
在分析階段,IDA會(huì)通過(guò)檢查二進(jìn)制文件的符號(hào)表生成符號(hào)名稱,或根據(jù)二進(jìn)制文件引用位置的方式自動(dòng)生成一個(gè)名稱。
在各種子窗口中,雙擊一個(gè)名稱,IDA將跳轉(zhuǎn)到反匯編窗口中被引用的位置。
?
快速庫(kù)識(shí)別和鑒定技術(shù)
庫(kù)快速識(shí)別和鑒定技術(shù),簡(jiǎn)稱FLIRT,IDA用于識(shí)別庫(kù)代碼的一組技術(shù)。核心是各種模式匹配算法。
?
跳轉(zhuǎn)表與分支語(yǔ)句
C語(yǔ)言的switch語(yǔ)句經(jīng)常成為編譯器優(yōu)化的目標(biāo)。
?
========
?
在Windows上安裝IDA時(shí),IDA會(huì)創(chuàng)建注冊(cè)表項(xiàng) HKEY_CURRENT_USER\Software\Hex-Rays\IDA。
Load new file 對(duì)話框
? ? 如果同時(shí)選擇了二進(jìn)制文件輸入格式和一種x86系列處理器,Loading Segment(加載段)和Loading Offset(加載偏移量)字段將處于活動(dòng)狀態(tài)。
? ? 在最初的加載過(guò)程中,如果忘記指定基址,可以在任何時(shí)候使用Edit-Segments-Rebase Program命令來(lái)修改IDA鏡像的基址。
? ? Kernel Options(核心選項(xiàng))按鈕用于配置特定的反匯編分析選項(xiàng),IDA可利用這些選項(xiàng)改進(jìn)遞歸下降過(guò)程。
IDA 數(shù)據(jù)庫(kù)文件
? ? 將選定的可執(zhí)行文件加載到內(nèi)存中,隨后,IDA會(huì)創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),其組件分別保存在4個(gè)文件中,這些文件的名稱與選定的可執(zhí)行文件的名稱相同,擴(kuò)展名分別為.id0、.id1、.nam和.til。.id0是一個(gè)二叉樹(shù)形式的數(shù)據(jù)庫(kù),.id1文件包含描述每個(gè)程序字節(jié)的標(biāo)記。.nam文件包含與IDA的Names窗口中顯示的給定程序位置有關(guān)的索引信息。.til文件用于存儲(chǔ)與一個(gè)給定數(shù)據(jù)庫(kù)的本地類(lèi)型定義有關(guān)的信息。
函數(shù)窗口
? ? 用于列舉在數(shù)據(jù)庫(kù)中識(shí)別的每一個(gè)函數(shù)。一個(gè)條目如下:
malloc ? ? ? ?.text ? ? ? ?00BDC260 00000180 R...B..
? ? 此條目解釋如下:
? ? 可以在二進(jìn)制文件中虛擬地址為00BDC260的.text部分找到malloc函數(shù);
? ? 該函數(shù)長(zhǎng)384字節(jié),十六進(jìn)制為180字節(jié);
? ? 它返回調(diào)用方R,并使用EBP寄存器B引用它的局部變量;
? ??
結(jié)構(gòu)體窗口
? ? 結(jié)構(gòu)體窗口用于顯示IDA決定在一個(gè)二進(jìn)制文件中使用的任何復(fù)雜的數(shù)據(jù)結(jié)構(gòu)(如C結(jié)構(gòu)體和聯(lián)合)的布局。
? ? 在分析階段,IDA會(huì)查詢它的函數(shù)類(lèi)型簽名擴(kuò)展庫(kù),設(shè)法將函數(shù)的參數(shù)類(lèi)型與程序使用的內(nèi)存匹配起來(lái)。
?
總結(jié)
以上是生活随笔為你收集整理的IDA Pro 权威指南阅读摘要1的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 直接修改PE文件头PE标识字段的实验
- 下一篇: IDA Pro 反汇编窗口基本操作