IDA Pro權威指南

IDA Pro權威指南

《IDA Pro權威指南》是2010年3月1日人民郵電出版社出版的圖書,作者是伊格爾(Chris Eagle)。

基本介紹

  • 書名:《IDA Pro權威指南》
  • 作者:伊格爾(Chris Eagle)
  • 譯者:石華耀、 段桂菊
  • ISBN:9787115222633
  • 頁數:445頁
  • 出版社:人民郵電出版社
  • 出版時間:2010年3月1日
  • 開本:16
  • 叢書名:圖靈程式設計叢書
  • 正文語種:簡體中文
  • 條形碼:9787115222633
  • 商品尺寸:23.8 x 18.2 x 2.6 cm
  • 商品重量:762 g
內容簡介,編輯推薦,媒體推薦,作者簡介,目錄,

內容簡介

《IDA Pro權威指南》內容簡介:IDA Pro(互動式反彙編器專業版)是套用最廣泛的靜態反彙編工具,在IT領域有著舉足輕重的地位,但其文檔資料一直都不夠完善。在IDA Pr0創建者Ilfak的協助下問世的這《IDA Pro權威指南》,完美地彌補了這一缺憾。C卜¨1s的理論被業界公認為是權威且令人信服的。而他的模擬器也是公開發布的IDA外掛程式中最棒的一款。
《IDA Pro權威指南》首先描述反彙編理論、逆向工程的基本信息}111DA Pro的背景知識,然後系統地介紹IDA的基本布局和功能、複雜數據結構的處理、交叉引用與繪圖功能,以及如何在非Wiridows平台上運行IDA。書中由淺入深地介紹了IDA的配置、F LlRT技術、IDA類型庫的擴展以及一些IDA限制。難得的是。《IDA Pro權威指南》還探討了IDA的可擴展性。涉及IDA腳本、SDK、外掛程式、載入器模組和處理器模組。最後闡述了IDA在逆向工程中的實際用法,討論了各種編譯器的區別、模糊代碼分析和漏洞分析、IDA外掛程式以及IDA調試器。

編輯推薦

《IDA Pro權威指南》:IDA Pro發行者親自作序推薦,Amazon全五星暢銷圖書,引領你步入IDA Pro和逆向工程的殿堂 。

媒體推薦

“它是迄今為止最全面、最準確、最棒的IDA Pro圖書。”
——Pierre Vandevenne,DataRescue公司的所有人和CEO
“我家裡有好幾本IDA Pro方面的圖書,但當我遇到Chris Eagle的這本佳作時,如獲至寶,其他所有書都可以拋棄了。”
——Amazon讀者評論

作者簡介

Chris EagIe,美國海軍研究生院計算機系副主任、高級講師,著有Gray,4at Hacking,在多種全球性安全會議中發表過演講。

目錄

第一部分 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

相關詞條

熱門詞條

聯絡我們