IDA Pro權威指南(第2版)

IDA Pro權威指南(第2版)

《IDA Pro權威指南(第2版)》是2022年12月人民郵電出版社出版的圖書,作者是[美]Chris Eagle。

基本介紹

  • 中文名:IDA Pro權威指南(第2版)
  • 作者:[美]Chris Eagle
  • 出版社:人民郵電出版社
  • 出版時間:2022年12月
  • 頁數:493 頁
  • 定價:89 元
  • 開本:16 開
  • 裝幀:平裝
  • ISBN:9787115273680
內容簡介,圖書目錄,

內容簡介

《IDA Pro權 威指南(第 2版)》共分為六部分,首先介紹了反彙編與逆向工程的基本信息和IDA Pro的背景知識,接著討論了IDA Pro的基本用法和高 級用法,然後講解了其高擴展性及其在安全領域的實際套用,**後介紹了IDA的內置調試器(包括Bochs調試器),一方面讓用戶對IDA Pro有全面深入的了解,另一方面讓讀者掌握IDA Pro在現實中的套用。相比上一版,這一版以IDA6.0為基礎,介紹了它的新的、基於Qt的圖形用戶界面,以及IDAPython外掛程式。
《IDA Pro權 威指南(第 2版)》適合IT領域的所有安全工作者閱讀。

圖書目錄

第 一部分 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 18
2.2.4 otool 18
2.2.5 dumpbin 19
2.2.6 c++filt 19
2.3 深度檢測工具 20
2.3.1 strings 20
2.3.2 反彙編器 22
2.4 小結 23
第3章 IDA Pro背景知識 24
3.1 Hex-Rays公司的反盜版策略 24
3.2 獲取IDA Pro 25
3.2.1 IDA版本 25
3.2.2 IDA許可證 25
3.2.3 購買IDA 26
3.2.4 升級IDA 26
3.3 IDA支持資源 26
3.4 安裝IDA 27
3.4.1 Windows安裝 28
3.4.2 OS X和Linux安裝 28
3.4.3 IDA與SELinux 29
3.4.4 32位IDA與64位IDA 29
3.4.5 IDA的結構 30
3.5 IDA用戶界面 30
3.6 小結 31
第 二部分 IDA基本用法
第4章 IDA入門 34
4.1 啟動IDA 34
4.1.1 IDA檔案載入 35
4.1.2 使用二進制檔案載入器 37
4.2 IDA資料庫檔案 38
4.2.1 創建IDA資料庫 39
4.2.2 關閉IDA資料庫 40
4.2.3 重新打開資料庫 41
4.3 IDA桌面簡介 42
4.4 初始分析時的桌面行為 44
4.5 IDA桌面提示和技巧 45
4.6 報告bug 45
4.7 小結 46
第5章 IDA數據顯示視窗 47
5.1 IDA主要的數據顯示視窗 47
5.1.1 反彙編視窗 47
5.1.2 函式視窗 52
5.1.3 輸出視窗 52
5.2 次要的IDA顯示視窗 52
5.2.1 十六進制視窗 52
5.2.2 導出視窗 53
5.2.3 導入視窗 54
5.2.4 結構體視窗 54
5.2.5 枚舉視窗 55
5.3 其他IDA顯示視窗 55
5.3.1 Strings 視窗 55
5.3.2 Names 視窗 57
5.3.3 段視窗 58
5.3.4 簽名視窗 58
5.3.5 類型庫視窗 59
5.3.6 函式調用視窗 59
5.3.7 問題視窗 60
5.4 小結 61
第6章 反彙編導航 62
6.1 基本IDA導航 62
6.1.1 雙擊導航 62
6.1.2 跳轉到地址 64
6.1.3 導航歷史記錄 64
6.2 棧幀 65
6.2.1 調用約定 66
6.2.2 局部變數布局 69
6.2.3 棧幀示例 70
6.2.4 IDA棧視圖 73
6.3 搜尋資料庫 77
6.3.1 文本搜尋 77
6.3.2 二進制搜尋 77
6.4 小結 78
第7章 反彙編操作 79
7.1 名稱與命名 79
7.1.1 參數和局部變數 79
7.1.2 已命名的位置 80
7.1.3 暫存器名稱 82
7.2 IDA中的注釋 82
7.2.1 常規注釋 83
7.2.2 可重複注釋 84
7.2.3 在前注釋和在後注釋 84
7.2.4 函式注釋 84
7.3 基本代碼轉換 85
7.3.1 代碼顯示選項 85
7.3.2 格式化指令運算元 87
7.3.3 操縱函式 88
7.3.4 數據與代碼互相轉換 93
7.4 基本數據轉換 94
7.4.1 指定數據大小 94
7.4.2 處理字元串 95
7.4.3 指定數組 97
7.5 小結 99
第8章 數據類型與數據結構 100
8.1 識別數據結構的用法 102
8.1.1 數組成員訪問 102
8.1.2 結構體成員訪問 107
8.2 創建IDA結構體 112
8.2.1 創建一個新的結構體(或聯合) 112
8.2.2 編輯結構體成員 113
8.2.3 用棧幀作為專用結構體 115
8.3 使用結構體模板 115
8.4 導入新的結構體 118
8.4.1 解析C結構體聲明 118
8.4.2 解析C頭檔案 119
8.5 使用標準結構體 120
8.6 IDA TIL檔案 123
8.6.1 載入新的TIL檔案 123
8.6.2 共享TIL檔案 123
8.7 C++逆向工程基礎 124
8.7.1 this指針 124
8.7.2 虛函式和虛表 125
8.7.3 對象生命周期 128
8.7.4 名稱改編 129
8.7.5 運行時類型識別 130
8.7.6 繼承關係 131
8.7.7 C++逆向工程參考文獻 132
8.8 小結 132
第9章 交叉引用與繪圖功能 133
9.1 交叉引用 133
9.1.1 代碼交叉引用 134
9.1.2 數據交叉引用 136
9.1.3 交叉引用列表 138
9.1.4 函式調用 139
9.2 IDA繪圖 140
9.2.1 IDA外部(第三方)圖形 140
9.2.2 IDA的集成繪圖視圖 147
9.3 小結 149
第 10章 IDA的多種面孔 150
10.1 控制台模式IDA 150
10.1.1 控制台模式的共同特性 150
10.1.2 Windows控制台 151
10.1.3 Linux控制台 152
10.1.4 OS X控制台 154
10.2 使用IDA的批量模式 156
10.3 小結 157
第三部分 IDA高 級套用
第 11章 定製IDA 160
11.1 配置檔案 160
11.1.1 主配置檔案:ida.cfg 160
11.1.2 GUI配置檔案:idagui.cfg 161
11.1.3 控制台配置檔案:idatui.cfg 163
11.2 其他IDA配置選項 164
11.2.1 IDA顏色 165
11.2.2 定製IDA工具列 165
11.3 小結 167
第 12章 使用FLIRT簽名來識別庫 168
12.1 快速庫識別和鑑定技術 168
12.2 套用FLIRT簽名 169
12.3 創建FLIRT簽名檔案 172
12.3.1 創建簽名概述 172
12.3.2 識別和獲取靜態庫 173
12.3.3 創建模式檔案 174
12.3.4 創建簽名檔案 175
12.3.5 啟動簽名 178
12.4 小結 178
第 13章 擴展IDA的知識 179
13.1 擴充函式信息 179
13.1.1 IDS檔案 181
13.1.2 創建IDS檔案 182
13.2 使用loadint擴充預定義注釋 184
13.3 小結 185
第 14章 修補二進制檔案及其他IDA限制 186
14.1 隱藏的補丁程式選單 186
14.1.1 更改資料庫位元組 187
14.1.2 更改資料庫中的字 187
14.1.3 使用彙編對話框 188
14.2 IDA輸出檔案與補丁生成 189
14.2.1 IDA生成的MAP檔案 189
14.2.2 IDA生成的ASM檔案 190
14.2.3 IDA生成的INC檔案 191
14.2.4 IDA生成的LST檔案 191
14.2.5 IDA生成的EXE檔案 191
14.2.6 IDA生成的DIF檔案 191
14.2.7 IDA生成的HTML檔案 192
14.3 小結 192
第四部分 擴展IDA的功能
第 15章 編寫IDA腳本 194
15.1 執行腳本的基礎知識 194
15.2 IDC語言 196
15.2.1 IDC變數 196
15.2.2 IDC表達式 197
15.2.3 IDC語句 197
15.2.4 IDC函式 198
15.2.5 IDC對象 200
15.2.6 IDC程式 200
15.2.7 IDC錯誤處理 201
15.2.8 IDC永 久數據存儲 202
15.3 關聯IDC腳本與熱鍵 203
15.4 有用的IDC函式 204
15.4.1 讀取和修改數據的函式 204
15.4.2 用戶互動函式 205
15.4.3 字元串操縱函式 206
15.4.4 檔案輸入/輸出函式 206
15.4.5 操縱資料庫名稱 207
15.4.6 處理函式的函式 207
15.4.7 代碼交叉引用函式 208
15.4.8 數據交叉引用函式 209
15.4.9 資料庫操縱函式 209
15.4.10 資料庫搜尋函式 210
15.4.11 反彙編行組件 210
15.5 IDC腳本示例 211
15.5.1 枚舉函式 211
15.5.2 枚舉指令 212
15.5.3 枚舉交叉引用 212
15.5.4 枚舉導出的函式 214
15.5.5 查找和標記函式參數 215
15.5.6 模擬彙編語言行為 217
15.6 IDAPython 219
15.7 IDAPython腳本示例 220
15.7.1 枚舉函式 220
15.7.2 枚舉指令 221
15.7.3 枚舉交叉引用 222
15.7.4 枚舉導出的函式 222
15.8 小結 223
第 16章 IDA軟體開發工具包 224
16.1 SDK簡介 225
16.1.1 安裝SDK 225
16.1.2 SDK的布局 225
16.1.3 配置構建環境 226
16.2 IDA套用編程接口 227
16.2.1 頭檔案概述 228
16.2.2 網路節點 230
16.2.3 有用的SDK數據類型 237
16.2.4 常用的SDK函式 238
16.2.5 IDA API疊代技巧 242
16.3 小結 246
第 17章 IDA外掛程式體系結構 247
17.1 編寫外掛程式 247
17.1.1 外掛程式生命周期 249
17.1.2 外掛程式初始化 250
17.1.3 事件通知 251
17.1.4 外掛程式執行 252
17.2 構建外掛程式 254
17.3 外掛程式安裝 258
17.4 外掛程式配置 259
17.5 擴展IDC 259
17.6 外掛程式用戶界面選項 262
17.6.1 使用SDK的“選擇器”對話框 262
17.6.2 使用SDK創建自定義表單 265
17.6.3 僅用於Windows的用戶界面生成技巧 269
17.6.4 使用Qt生成用戶界面 269
17.7 腳本化外掛程式 271
17.8 小結 272
第 18章 二進制檔案與IDA載入器模組 273
18.1 未知檔案分析 274
18.2 手動載入一個Windows PE檔案 275
18.3 IDA載入器模組 281
18.4 使用SDK編寫IDA載入器 282
18.4.1 “傻瓜式”載入器 284
18.4.2 構建IDA載入器模組 288
18.4.3 IDA pcap載入器 288
18.5 其他載入器策略 294
18.6 編寫腳本化載入器 294
18.7 小結 296
第 19章 IDA處理器模組 297
19.1 Python位元組碼 298
19.2 Python解釋器 298
19.3 使用SDK編寫處理器模組 299
19.3.1 processor_t結構體 299
19.3.2 LPH 結構體的基本初始化 300
19.3.3 分析器 303
19.3.4 模擬器 308
19.3.5 輸出器 310
19.3.6 處理器通知 315
19.3.7 其他processor_t成員 316
19.4 構建處理器模組 318
19.5 定製現有的處理器 322
19.6 處理器模組體系結構 324
19.7 編寫處理器模組 325
19.8 小結 326
第五部分 實際套用
第 20章 編譯器變體 328
20.1 跳轉表與分支語句 328
20.2 RTTI實現 332
20.3 定位main函式 332
20.4 調試版與發行版二進制檔案 339
20.5 其他調用約定 341
20.6 小結 342
第 21章 模糊代碼分析 344
21.1 反靜態分析技巧 344
21.1.1 反彙編去同步 344
21.1.2 動態計算目標地址 347
21.1.3 導入的函式模糊 353
21.1.4 有針對性地攻擊分析工具 356
21.2 反動態分析技巧 357
21.2.1 檢測虛擬化 357
21.2.2 檢測“檢測工具” 358
21.2.3 檢測調試器 359
21.2.4 防止調試 360
21.3 使用IDA對二進制檔案進行“靜態去模糊” 361
21.3.1 面向腳本的去模糊 361
21.3.2 面向模擬的去模糊 366
21.4 基於虛擬機的模糊 375
21.5 小結 377
第 22章 漏洞分析 378
22.1 使用IDA發現新的漏洞 379
22.2 使用IDA在事後發現漏洞 384
22.3 IDA與破解程式開發過程 388
22.3.1 棧幀細目 389
22.3.2 定位指令序列 392
22.3.3 查找有用的虛擬地址 394
22.4 分析shellcode 395
22.5 小結 397
第 23章 實用IDA外掛程式 398
23.1 Hex-Rays 398
23.2 IDAPython 401
23.3 collabREate 402
23.4 ida-x86emu 404
23.5 Class Informer 404
23.6 MyNav 406
23.7 IdaPdf 407
23.8 小結 408
第六部分 IDA調試器
第 24章 IDA調試器 410
24.1 啟動調試器 410
24.2 調試器的基本顯示 414
24.3 進程控制 416
24.3.1 斷點 417
24.3.2 跟蹤 420
24.3.3 棧跟蹤 422
24.3.4 監視 423
24.4 調試器任務自動化 423
24.4.1 為調試器操作編寫腳本 424
24.4.2 使用IDA外掛程式實現調試器操作自動化 428
24.5 小結 430
第 25章 反彙編器/調試器集成 431
25.1 背景知識 431
25.2 IDA資料庫與IDA調試器 432
25.3 調試模糊代碼 434
25.3.1 啟動進程 435
25.3.2 簡單的解密和解壓循環 436
25.3.3 導入表重建 439
25.3.4 隱藏調試器 443
25.4 IDAStealth 448
25.5 處理異常 449
25.6 小結 454
第 26章 其他調試功能 455
26.1 使用IDA進行遠程調試 455
26.1.1 使用Hex-Rays調試伺服器 455
26.1.2 連線到遠程進程 458
26.1.3 遠程調試期間的異常處理 458
26.1.4 在遠程調試過程中使用腳本和外掛程式 458
26.2 使用Bochs進行調試 459
26.2.1 Bochs IDB模式 459
26.2.2 Bochs PE模式 460
26.2.3 Bochs磁碟映像模式 461
26.3 Appcall 461
26.4 小結 463
附錄A 使用IDA免費版本5.0 464
附錄B IDC/SDK交叉引用 466

熱門詞條

聯絡我們