注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡軟件與程序設計其他編程語言/工具IDA Pro權威指南(第2版)

IDA Pro權威指南(第2版)

IDA Pro權威指南(第2版)

定 價:¥89.00

作 者: (美) Chris Eagle
出版社: 人民郵電出版社
叢編項:
標 簽: 程序設計

ISBN: 9787115273680 出版時間: 2012-01-20 包裝: 平裝
開本: 16 開 頁數(shù): 493 字數(shù):  

內容簡介

  內容簡介:IDA Pro(交互式反匯編器專業(yè)版)是應用最廣泛的靜態(tài)反匯編工具,在IT領域有著舉足輕重的地位,但其文檔資料一直都不夠完善。在IDA Pro開發(fā)者Ilfak的協(xié)助下問世的這本書,完美地彌補了這一缺憾。Chris Eagle的理論被業(yè)界公認為是權威且令人信服的,而他的模擬器也是公開發(fā)布的IDA插件中最棒的一款。本書以反匯編與逆向工程的基本信息和IDA Pro的背景知識開篇,為讀者奠定基礎,緊接著循序漸進地講解IDA Pro的基本使用、高級應用、擴展功能及其在安全領域的實際應用。通過閱讀本書,從事逆向工程的讀者一定能迅速掌握IDA Pro的使用方法。

作者簡介

  ChrisEagle是美國加利福尼亞州蒙特雷海軍研究生院計算機科學系高級講師。他設計了很多IDA插件,還與人合著了GrayHat Hacking一書。他應邀在Balckhat、Defcon、Toorcon和Shmoocon等眾多安全會議上發(fā)表過演講。

圖書目錄

第一部分  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 數(shù)據(jù)庫文件  38
4.2.1  創(chuàng)建IDA 數(shù)據(jù)庫  39
4.2.2  關閉IDA 數(shù)據(jù)庫  40
4.2.3  重新打開數(shù)據(jù)庫  41
4.3  IDA 桌面簡介  42
4.4  初始分析時的桌面行為   44
4.5  IDA 桌面提示和技巧  45
4.6  報告bug   45
4.7  小結  46
第5 章  IDA 數(shù)據(jù)顯示窗口  47
5.1  IDA 主要的數(shù)據(jù)顯示窗口   47
5.1.1  反匯編窗口   47
5.1.2  函數(shù)窗口   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  函數(shù)調用窗口   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  搜索數(shù)據(jù)庫   77
6.3.1  文本搜索   77
6.3.2  二進制搜索   77
6.4  小結   78
第7 章  反匯編操作   79
7.1  名稱與命名   79
7.1.1  參數(shù)和局部變量   79
7.1.2  已命名的位置   80
7.1.3  寄存器名稱   82
7.2  IDA 中的注釋   82
7.2.1  常規(guī)注釋   83
7.2.2  可重復注釋   84
7.2.3  在前注釋和在后注釋   84
7.2.4  函數(shù)注釋   84
7.3  基本代碼轉換   85
7.3.1  代碼顯示選項   85
7.3.2  格式化指令操作數(shù)   87
7.3.3  操縱函數(shù)   88
7.3.4  數(shù)據(jù)與代碼互相轉換   93
7.4  基本數(shù)據(jù)轉換   94
7.4.1  指定數(shù)據(jù)大小  94
7.4.2  處理字符串   95
7.4.3  指定數(shù)組   97
7.5  小結   99
第8 章  數(shù)據(jù)類型與數(shù)據(jù)結構  100
8.1  識別數(shù)據(jù)結構的用法   102
8.1.1  數(shù)組成員訪問   102
8.1.2  結構體成員訪問   107
8.2  創(chuàng)建IDA 結構體  112
8.2.1  創(chuàng)建一個新的結構體(或聯(lián)合)   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  虛函數(shù)和虛表  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  數(shù)據(jù)交叉引用  136
9.1.3  交叉引用列表  138
9.1.4  函數(shù)調用  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  創(chuàng)建FLIRT 簽名文件  172
12.3.1  創(chuàng)建簽名概述  172
12.3.2  識別和獲取靜態(tài)庫  173
12.3.3  創(chuàng)建模式文件  174
12.3.4  創(chuàng)建簽名文件  175
12.3.5  啟動簽名  178
12.4  小結  178
第13 章  擴展IDA 的知識  179
13.1  擴充函數(shù)信息  179
13.1.1  IDS 文件  181
13.1.2  創(chuàng)建IDS 文件  182
13.2  使用loadint 擴充預定義注釋  184
13.3  小結  185
第14 章  修補二進制文件及其他IDA 限制  186
14.1  隱藏的補丁程序菜單  186
14.1.1  更改數(shù)據(jù)庫字節(jié)  187
14.1.2  更改數(shù)據(jù)庫中的字  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  執(zhí)行腳本的基礎知識  194
15.2  IDC 語言  196
15.2.1  IDC 變量  196
15.2.2  IDC 表達式  197
15.2.3  IDC 語句  197
15.2.4  IDC 函數(shù)  198
15.2.5  IDC 對象  200
15.2.6  IDC 程序  200
15.2.7  IDC 錯誤處理  201
15.2.8  IDC 永久數(shù)據(jù)存儲  202
15.3  關聯(lián)IDC 腳本與熱鍵  203
15.4  有用的IDC 函數(shù)  204
15.4.1  讀取和修改數(shù)據(jù)的函數(shù)  204
15.4.2  用戶交互函數(shù)  205
15.4.3  字符串操縱函數(shù)  206
15.4.4  文件輸入/輸出函數(shù)  206
15.4.5  操縱數(shù)據(jù)庫名稱  207
15.4.6  處理函數(shù)的函數(shù)  207
15.4.7  代碼交叉引用函數(shù)  208
15.4.8  數(shù)據(jù)交叉引用函數(shù)  209
15.4.9  數(shù)據(jù)庫操縱函數(shù)  209
15.4.10  數(shù)據(jù)庫搜索函數(shù)  210
15.4.11  反匯編行組件   210
15.5  IDC 腳本示例  211
15.5.1  枚舉函數(shù)  211
15.5.2  枚舉指令  212
15.5.3  枚舉交叉引用  212
15.5.4  枚舉導出的函數(shù)  214
15.5.5  查找和標記函數(shù)參數(shù)  215
15.5.6  模擬匯編語言行為  217
15.6  IDAPython  219
15.7  IDAPython 腳本示例  220
15.7.1  枚舉函數(shù)  220
15.7.2  枚舉指令  221
15.7.3  枚舉交叉引用  222
15.7.4  枚舉導出的函數(shù)  222
15.8  小結   223
第16 章  IDA 軟件開發(fā)工具包   224
16.1  SDK 簡介  225
16.1.1  安裝SDK  225
16.1.2  SDK 的布局   225
16.1.3  配置構建環(huán)境  226
16.2  IDA 應用編程接口  227
16.2.1  頭文件概述   228
16.2.2  網絡節(jié)點   230
16.2.3  有用的SDK 數(shù)據(jù)類型   237
16.2.4  常用的SDK 函數(shù)   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  插件執(zhí)行   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 創(chuàng)建自定義表單   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 字節(jié)碼  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  定制現(xiàn)有的處理器  322
19.6  處理器模塊體系結構  324
19.7  編寫處理器模塊  325
19.8  小結  326
第五部分  實際應用
第20 章  編譯器變體  328
20.1  跳轉表與分支語句  328
20.2  RTTI 實現(xiàn)  332
20.3  定位main 函數(shù)  332
20.4  調試版與發(fā)行版二進制文件  339
20.5  其他調用約定  341
20.6  小結  342
第21 章  模糊代碼分析  344
21.1  反靜態(tài)分析技巧  344
21.1.1  反匯編去同步  344
21.1.2  動態(tài)計算目標地址  347
21.1.3  導入的函數(shù)模糊  353
21.1.4  有針對性地攻擊分析工具  356
21.2  反動態(tài)分析技巧  357
21.2.1  檢測虛擬化  357
21.2.2  檢測“檢測工具”   358
21.2.3  檢測調試器  359
21.2.4  防止調試  360
21.3  使用IDA 對二進制文件進行“靜態(tài)去模糊”   361
21.3.1  面向腳本的去模糊  361
21.3.2  面向模擬的去模糊  366
21.4  基于虛擬機的模糊  375
21.5  小結  377
第22 章  漏洞分析  378
22.1  使用IDA 發(fā)現(xiàn)新的漏洞  379
22.2  使用IDA 在事后發(fā)現(xiàn)漏洞  384
22.3  IDA 與破解程序開發(fā)過程  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  監(jiān)視  423
24.4  調試器任務自動化  423
24.4.1  為調試器操作編寫腳本  424
24.4.2  使用IDA 插件實現(xiàn)調試器操作自動化  428
24.5  小結  430
第25 章  反匯編器/調試器集成  431
25.1  背景知識  431
25.2  IDA 數(shù)據(jù)庫與IDA 調試器  432
25.3  調試模糊代碼  434
25.3.1  啟動進程  435
25.3.2  簡單的解密和解壓循環(huán)  436
25.3.3  導入表重建  439
25.3.4  隱藏調試器  443
25.4  IDAStealth   448
25.5  處理異?! ?49
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

本目錄推薦

掃描二維碼
Copyright ? 讀書網 www.talentonion.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號