|
-- 會員 / 註冊 --
|
|
|
|
IDA Pro權威指南(第2版) ( 簡體 字) |
作者:[美] Chris Eagle | 類別:1. -> 程式設計 -> 綜合 |
譯者: |
出版社:人民郵電出版社 | 3dWoo書號: 34933 詢問書籍請說出此書號!【缺書】 NT售價: 445 元 |
出版日:2/1/2012 |
頁數:493 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
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 |
序: |
|