IDA Pro權威指南是一款由人民郵電出版社出版在2010年3月1日出版的圖書,此為pdf版本,與紙質版圖書內容一致,字跡清晰,需要學習IDA反匯編方面知識的朋友可以下載體驗!
IDA Pro權威指南介紹
《IDA Pro權威指南》首先描述反匯編理論、逆向工程的基本信息}111DA Pro的背景知識,然后系統地介紹IDA的基本布局和功能、復雜數據結構的處理、交叉引用與繪圖功能,以及如何在非Wiridows平臺上運行IDA。書中由淺入深地介紹了IDA的配置、F LlRT技術、IDA類型庫的擴展以及一些IDA限制。難得的是。《IDA Pro權威指南》還探討了IDA的可擴展性。涉及IDA腳本、SDK、插件、加載器模塊和處理器模塊。最后闡述了IDA在逆向工程中的實際用法,討論了各種編譯器的區別、模糊代碼分析和漏洞分析、IDA插件以及IDA調試器。?

IDA Pro權威指南目錄?
第一部分 IDA簡介?
第1章 反匯編簡介 2?
1.1 反匯編理論2?
1.2 何為反匯編3?
1.3 為何反匯編3?
1.3.1 分析惡意軟件 4?
1.3.2 漏洞分析4?
1.3.3 軟件互操作性 4?
1.3.4 編譯器驗證 4?
1.3.5 顯示調試信息 5?
1.4 如何反匯編5?
1.4.1 基本的反匯編算法5?
1.4.2 線性掃描反匯編6?
1.4.3 遞歸下降反匯編7?
1.5 小結 10?
第2章 逆向與反匯編工具 11?
2.1 分類工具 11?
2.1.1 file 11?
2.1.2 PE Tools 13?
2.1.3 PEiD 14?
2.2 摘要工具 14?
2.2.1 nm 15?
2.2.2 ldd 16?
2.2.3 objdump 17?
2.2.4 otool 18?
2.2.5 dumpbin 18?
2.2.6 c++filt 19?
2.3 深度檢測工具 20?
2.3.1 strings 20?
2.3.2 反匯編器 21?
2.4 小結 22?
第3章 IDA Pro背景知識 23?
3.1 Hex-Rays公司的反盜版策略 23?
3.2 獲取IDA Pro 24?
3.2.1 IDA版本 24?
3.2.2 IDA許可證 24?
3.2.3 購買IDA 25?
3.2.4 升級IDA 25?
3.3 IDA支持資源 25?
3.4 安裝IDA 26?
3.4.1 Windows安裝 26?
3.4.2 OS X和Linux安裝 27?
3.4.3 IDA目錄的結構 28?
3.5 IDA用戶界面 29?
3.6 小結 29?
第二部分 IDA基本用法?
第4章 IDA入門 32?
4.1 啟動IDA 32?
4.1.1 IDA文件加載 34?
4.1.2 使用二進制文件加載器 35?
4.2 IDA數據庫文件 37?
4.2.1 創建IDA數據庫 38?
4.2.2 關閉IDA數據庫 38?
4.2.3 重新打開數據庫 39?
4.3 IDA桌面簡介 40?
4.4 初始分析時的桌面行為 42?
4.5 IDA桌面提示和技巧 43?
4.6 報告bug 44?
4.7 小結 44?
第5章 IDA數據顯示窗口 45?
5.1 IDA主要的數據顯示窗口 45?
5.1.1 反匯編窗口 45?
5.1.2 Names窗口 50?
5.1.3 消息窗口 51?
5.1.4 Strings窗口 52?
5.2 次要的IDA顯示窗口 53?
5.2.1 十六進制窗口 53?
5.2.2 導出窗口 54?
5.2.3 導入窗口 54?
5.2.4 函數窗口 55?
5.2.5 結構體窗口 55?
5.2.6 枚舉窗口 56?
5.3 其他IDA顯示窗口 56?
5.3.1 段窗口 56?
5.3.2 簽名窗口 57?
5.3.3 類型庫窗口 58?
5.3.4 函數調用窗口 58?
5.3.5 問題窗口 59?
5.4 小結 59?
第6章 反匯編導航 60?
6.1 基本IDA導航 60?
6.1.1 雙擊導航60?
6.1.2 跳轉到地址 62?
6.1.3 導航歷史記錄 62?
6.2 棧幀 63?
6.2.1 調用約定64?
6.2.2 局部變量布局 67?
6.2.3 棧幀示例67?
6.2.4 IDA棧視圖 70?
6.3 搜索數據庫74?
6.3.1 文本搜索75?
6.3.2 二進制搜索 75?
6.4 小結 76?
第7章 反匯編操作 77?
7.1 名稱與命名77?
7.1.1 參數和局部變量 77?
7.1.2 已命名的位置 79?
7.1.3 寄存器名稱 80?
7.2 IDA中的注釋 80?
7.2.1 常規注釋82?
7.2.2 可重復注釋 82?
7.2.3 在前注釋和在后注釋 82?
7.2.4 函數注釋82?
7.3 基本代碼轉換 83?
7.3.1 代碼顯示選項 83?
7.3.2 格式化指令操作數 85?
7.3.3 操縱函數86?
7.3.4 數據與代碼互相轉換 91?
7.4 基本數據轉換 91?
7.4.1 指定數據大小 92?
7.4.2 處理字符串 93?
7.4.3 指定數組 94?
7.5 小結 96?
第8章 數據類型與數據結構 97?
8.1 識別數據結構的使用 98?
8.1.1 數組成員訪問 98?
8.1.2 結構體成員訪問 102?
8.2 創建IDA結構體 107?
8.3 使用結構體模板 111?
8.4 導入新的結構體 114?
8.4.1 解析C結構體聲明 114?
8.4.2 解析C頭文件 115?
8.5 使用標準結構體 115?
8.6 IDA TIL文件 118?
8.6.1 加載新的TIL文件 118?
8.6.2 共享TIL文件 118?
8.7 C++逆向工程基礎 119?
8.7.1 this指針 119?
8.7.2 虛函數和虛表 120?
8.7.3 對象生命周期 122?
8.7.4 名稱改編 124?
8.7.5 運行時類型識別 125?
8.7.6 繼承關系 126?
8.7.7 C++逆向工程參考文獻 127?
8.8 小結 127?
第9章 交叉引用與繪圖功能 128?
9.1 交叉引用 128?
9.1.1 代碼交叉引用 129?
9.1.2 數據交叉引用 131?
9.1.3 交叉引用列表 133?
9.1.4 函數調用 134?
9.2 IDA繪圖 135?
9.2.1 IDA的遺留繪圖功能 135?
9.2.2 IDA的集成圖形視圖 141?
9.3 小結 143?
第10章 IDA的多種面孔 144?
10.1 控制臺模式IDA 144?
10.1.1 控制臺模式的共同特性 144?
10.1.2 Windows控制臺 145?
10.1.3 Linux控制臺 146?
10.1.4 OS X控制臺 148?
10.2 使用IDA的批量模式 150?
10.3 非Windows平臺上的GUI IDA 151?
10.4 小結 152?
第三部分 IDA高級應用?
第11章 定制IDA 154?
11.1 配置文件 154?
11.1.1 主配置文件:ida.cfg 154?
11.1.2 GUI配置文件:idagui.cfg 155?
11.1.3 控制臺配置文件:idatui.cfg 157?
11.2 其他IDA配置選項 158?
11.2.1 IDA顏色 159?
11.2.2 定制IDA工具欄 159?
11.3 小結 161?
第12章 使用FLIRT簽名來識別庫 162?
12.1 快速庫識別和鑒定技術 162?
12.2 應用FLIRT簽名 163?
12.3 創建FLIRT簽名文件 166?
12.3.1 創建簽名概述 166?
12.3.2 識別和獲取靜態庫 167?
12.3.3 創建模式文件 168?
12.3.4 創建簽名文件 169?
12.3.5 啟動簽名 171?
12.4 小結 172?
第13章 擴展IDA的知識 173?
13.1 擴充函數信息 173?
13.1.1 IDS文件 175?
13.1.2 創建IDS文件 176?
13.2 使用loadint擴充預定義注釋 178?
13.3 小結 179?
第14章 修補二進制文件及其他IDA?
限制 180?
14.1 隱藏的補丁程序菜單 180?
14.1.1 更改數據庫字節 181?
14.1.2 更改數據庫中的字 181?
14.1.3 使用“匯編”對話框 182?
14.2 IDA輸出文件與補丁生成 183?
14.2.1 IDA生成的MAP文件 183?
14.2.2 IDA生成的ASM文件 184?
14.2.3 IDA生成的INC文件 184?
14.2.4 IDA生成的LST文件 185?
14.2.5 IDA生成的EXE文件 185?
14.2.6 IDA生成的DIF文件 185?
14.2.7 IDA生成的HTML文件 186?
14.3 小結 186?
第四部分 擴展IDA的功能?
第15章 編寫IDC腳本 188?
15.1 執行腳本的基礎知識 188?
15.2 IDC語言 189?
15.2.1 IDC變量 190?
15.2.2 IDC表達式 190?
15.2.3 IDC語句 190?
15.2.4 IDC函數 191?
15.2.5 IDC程序 192?
15.2.6 IDC錯誤處理 192?
15.2.7 IDC永久數據存儲 193?
15.3 關聯IDC腳本與熱鍵 194?
15.4 有用的IDC函數 195?
15.4.1 讀取和修改數據的函數 196?
15.4.2 用戶交互函數 196?
15.4.3 字符串操縱函數 197?
15.4.4 文件輸入/輸出函數 197?
15.4.5 操縱數據庫名稱 198?
15.4.6 處理函數的函數 199?
15.4.7 代碼交叉引用函數 199?
15.4.8 數據交叉引用函數 200?
15.4.9 數據庫操縱函數 200?
15.4.10 數據庫搜索函數 201?
15.4.11 反匯編行組件 201?
15.5 IDC腳本示例 202?
15.5.1 枚舉函數 202?
15.5.2 枚舉指令 202?
15.5.3 枚舉交叉引用 203?
15.5.4 枚舉導出的函數 205?
15.5.5 查找和標記函數參數 206?
15.5.6 模擬匯編語言行為 208?
15.6 小結 209?
第16章 IDA軟件開發工具包 211?
16.1 SDK簡介 212?
16.1.1 安裝SDK 212?
16.1.2 SDK的布局 212?
16.1.3 配置構建環境 213?
16.2 IDA應用編程接口 214?
16.2.1 頭文件概述 214?
16.2.2 網絡節點 217?
16.2.3 有用的SDK數據類型 223?
16.2.4 常用的SDK函數 224?
16.2.5 IDA API迭代技巧 229?
16.3 小結 232?
第17章 IDA插件體系結構 233?
17.1 編寫插件 233?
17.1.1 插件生命周期 235?
17.1.2 插件初始化 236?
17.1.3 事件通知 237?
17.1.4 插件執行 238?
17.2 構建插件 239?
17.3 插件安裝 243?
17.4 插件配置 244?
17.5 擴展IDC 244?
17.6 插件用戶界面選項 247?
17.7 小結 254?
第18章 二進制文件與IDA加載器模塊 255?
18.1 未知文件分析 256?
18.2 手動加載一個Windows PE文件 256?
18.3 IDA加載器模塊 263?
18.4 編寫IDA加載器 263?
18.4.1 “傻瓜式”加載器 265?
18.4.2 構建IDA加載器模塊 269?
18.4.3 IDA pcap加載器 269?
18.5 其他加載器策略 274?
18.6 小結 275?
第19章 IDA處理器模塊 276?
19.1 python字節碼 277?
19.2 Python解釋器 277?
19.3 編寫處理器模塊 277?
19.3.1 processor_t結構體 278?
19.3.2 LPH結構體的基本初始化 278?
19.3.3 分析器 282?
19.3.4 模擬器 286?
19.3.5 輸出器 288?
19.3.6 處理器通知 293?
19.3.7 其他processor_t成員 294?
19.4 構建處理器模塊 296?
19.5 定制現有的處理器 299?
19.6 處理器模塊體系結構 301?
19.7 小結 302?
第五部分 實際應用?
第20章 編譯器變體 304?
20.1 跳轉表與分支語句 304?
20.2 RTTI實現 308?
20.3 定位main函數 308?
20.4 調試版與發行版二進制文件 315?
20.5 其他調用約定 317?
20.6 小結 317?
第21章 模糊代碼分析 319?
21.1 反靜態分析技巧 319?
21.1.1 反匯編去同步 319?
21.1.2 動態計算目標地址 322?
21.1.3 導入的函數模糊 327?
21.1.4 有針對性地攻擊分析工具 331?
21.2 反動態分析技巧 331?
21.2.1 檢測虛擬化 331?
21.2.2 檢測“檢測工具” 333?
21.2.3 檢測調試器 333?
21.2.4 防止調試 334?
21.3 使用IDA對二進制文件進行“靜態去模糊” 335?
21.3.1 面向腳本的去模糊 335?
21.3.2 面向模擬的去模糊 339?
21.4 小結 349?
第22章 漏洞分析 350?
22.1 使用IDA發現新的漏洞 351?
22.2 使用IDA在事后發現漏洞 356?
22.3 IDA與破解程序開發過程 359?
22.3.1 棧幀細目 360?
22.3.2 定位指令序列 362?
22.3.3 查找有用的虛擬地址 363?
22.4 分析shellcode 364?
22.5 小結 366?
第23章 實用IDA插件 367?
23.1 Hex-Rays 367?
23.2 IDAPython 368?
23.3 IDARub 371?
23.4 IDA Sync 371?
23.5 collabREate 374?
23.6 ida-x86emu 377?
23.7 mIDA 377?
23.8 小結 379?
第六部分 IDA調試器?
第24章 IDA調試器 382?
24.1 啟動調試器 382?
24.2 調試器的基本顯示 384?
24.3 進程控制 387?
24.3.1 斷點 388?
24.3.2 跟蹤 390?
24.3.3 棧跟蹤 393?
24.3.4 監視 393?
24.4 調試器任務自動化 393?
24.4.1 使用IDC為調試器操作編寫?
腳本 394?
24.4.2 使用IDA插件實現調試器操?
作自動化 398?
24.5 小結 400?
第25章 反匯編器/調試器集成 401?
25.1 背景知識 401?
25.2 IDA數據庫與IDA調試器 402?
25.3 調試模糊代碼 404?
25.3.1 簡單的解密和解壓循環 404?
25.3.2 導入表重建 407?
25.3.3 隱藏調試器 410?
25.3.4 處理異常 414?
25.4 小結 418?
第26章 Linux、OS X平臺的IDA和?
遠程調試 419?
26.1 控制臺模式的調試 419?
26.2 使用IDA進行遠程調試 420?
26.2.1 遠程調試中的異常處理 422?
26.2.2 在遠程調試中使用腳本和?
插件 423?
26.3 小結 423?
附錄A 使用IDA 4.9免費版 424?
附錄B IDC/SDK交叉引用 426?
附錄C IDA 5.3的新功能 444




