注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)其他編程語(yǔ)言/工具IDA Pro權(quán)威指南(第2版)

IDA Pro權(quán)威指南(第2版)

IDA Pro權(quán)威指南(第2版)

定 價(jià):¥89.00

作 者: (美) Chris Eagle
出版社: 人民郵電出版社
叢編項(xiàng):
標(biāo) 簽: 程序設(shè)計(jì)

ISBN: 9787115273680 出版時(shí)間: 2012-01-20 包裝: 平裝
開(kāi)本: 16 開(kāi) 頁(yè)數(shù): 493 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

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

作者簡(jiǎn)介

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

圖書(shū)目錄

第一部分  IDA 簡(jiǎn)介
第1 章  反匯編簡(jiǎn)介  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  編譯器驗(yàn)證  4
1.3.5  顯示調(diào)試信息  5
1.4  如何反匯編  5
1.4.1  基本的反匯編算法  5
1.4.2  線(xiàn)性?huà)呙璺磪R編  6
1.4.3  遞歸下降反匯編  7
1.5  小結(jié)  10
第2 章  逆向與反匯編工具  11
2.1  分類(lèi)工具  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  深度檢測(cè)工具  20
2.3.1  strings   20
2.3.2  反匯編器  22
2.4  小結(jié)  23
第3 章  IDA Pro 背景知識(shí)  24
3.1  Hex-Rays 公司的反盜版策略  24
3.2  獲取IDA Pro   25
3.2.1  IDA 版本  25
3.2.2  IDA 許可證  25
3.2.3  購(gòu)買(mǎi)IDA  26
3.2.4  升級(jí)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 目錄的結(jié)構(gòu)  30
3.5  IDA 用戶(hù)界面  30
3.6  小結(jié)  31
第二部分  IDA 基本用法
第4 章  IDA 入門(mén)  34
4.1  啟動(dòng)IDA   34
4.1.1  IDA 文件加載  35
4.1.2  使用二進(jìn)制文件加載器  37
4.2  IDA 數(shù)據(jù)庫(kù)文件  38
4.2.1  創(chuàng)建IDA 數(shù)據(jù)庫(kù)  39
4.2.2  關(guān)閉IDA 數(shù)據(jù)庫(kù)  40
4.2.3  重新打開(kāi)數(shù)據(jù)庫(kù)  41
4.3  IDA 桌面簡(jiǎn)介  42
4.4  初始分析時(shí)的桌面行為   44
4.5  IDA 桌面提示和技巧  45
4.6  報(bào)告bug   45
4.7  小結(jié)  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  十六進(jìn)制窗口  52
5.2.2  導(dǎo)出窗口   53
5.2.3  導(dǎo)入窗口   54
5.2.4  結(jié)構(gòu)體窗口  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  類(lèi)型庫(kù)窗口  59
5.3.6  函數(shù)調(diào)用窗口   59
5.3.7  問(wèn)題窗口   60
5.4  小結(jié)  61
第6 章  反匯編導(dǎo)航  62
6.1  基本IDA 導(dǎo)航  62
6.1.1  雙擊導(dǎo)航  62
6.1.2  跳轉(zhuǎn)到地址  64
6.1.3  導(dǎo)航歷史記錄  64
6.2  棧幀  65
6.2.1  調(diào)用約定   66
6.2.2  局部變量布局   69
6.2.3  棧幀示例   70
6.2.4  IDA 棧視圖  73
6.3  搜索數(shù)據(jù)庫(kù)   77
6.3.1  文本搜索   77
6.3.2  二進(jìn)制搜索   77
6.4  小結(jié)   78
第7 章  反匯編操作   79
7.1  名稱(chēng)與命名   79
7.1.1  參數(shù)和局部變量   79
7.1.2  已命名的位置   80
7.1.3  寄存器名稱(chēng)   82
7.2  IDA 中的注釋   82
7.2.1  常規(guī)注釋   83
7.2.2  可重復(fù)注釋   84
7.2.3  在前注釋和在后注釋   84
7.2.4  函數(shù)注釋   84
7.3  基本代碼轉(zhuǎn)換   85
7.3.1  代碼顯示選項(xiàng)   85
7.3.2  格式化指令操作數(shù)   87
7.3.3  操縱函數(shù)   88
7.3.4  數(shù)據(jù)與代碼互相轉(zhuǎn)換   93
7.4  基本數(shù)據(jù)轉(zhuǎn)換   94
7.4.1  指定數(shù)據(jù)大小  94
7.4.2  處理字符串   95
7.4.3  指定數(shù)組   97
7.5  小結(jié)   99
第8 章  數(shù)據(jù)類(lèi)型與數(shù)據(jù)結(jié)構(gòu)  100
8.1  識(shí)別數(shù)據(jù)結(jié)構(gòu)的用法   102
8.1.1  數(shù)組成員訪(fǎng)問(wèn)   102
8.1.2  結(jié)構(gòu)體成員訪(fǎng)問(wèn)   107
8.2  創(chuàng)建IDA 結(jié)構(gòu)體  112
8.2.1  創(chuàng)建一個(gè)新的結(jié)構(gòu)體(或聯(lián)合)   112
8.2.2  編輯結(jié)構(gòu)體成員  113
8.2.3  用棧幀作為專(zhuān)用結(jié)構(gòu)體   115
8.3  使用結(jié)構(gòu)體模板  115
8.4  導(dǎo)入新的結(jié)構(gòu)體  118
8.4.1  解析C 結(jié)構(gòu)體聲明  118
8.4.2  解析C 頭文件   119
8.5  使用標(biāo)準(zhǔn)結(jié)構(gòu)體   120
8.6  IDA TIL 文件   123
8.6.1  加載新的TIL 文件  123
8.6.2  共享TIL 文件  123
8.7  C++逆向工程基礎(chǔ)  124
8.7.1  this 指針  124
8.7.2  虛函數(shù)和虛表  125
8.7.3  對(duì)象生命周期  128
8.7.4  名稱(chēng)改編  129
8.7.5  運(yùn)行時(shí)類(lèi)型識(shí)別  130
8.7.6  繼承關(guān)系  131
8.7.7  C++逆向工程參考文獻(xiàn)  132
8.8  小結(jié)  132
第9 章  交叉引用與繪圖功能  133
9.1  交叉引用  133
9.1.1  代碼交叉引用  134
9.1.2  數(shù)據(jù)交叉引用  136
9.1.3  交叉引用列表  138
9.1.4  函數(shù)調(diào)用  139
9.2  IDA 繪圖  140
9.2.1  IDA 外部(第三方)圖形  140
9.2.2  IDA 的集成繪圖視圖  147
9.3  小結(jié)  149
第10 章  IDA 的多種面孔  150
10.1  控制臺(tái)模式IDA   150
10.1.1  控制臺(tái)模式的共同特性  150
10.1.2  Windows 控制臺(tái)  151
10.1.3  Linux 控制臺(tái)  152
10.1.4  OS X 控制臺(tái)  154
10.2  使用IDA 的批量模式  156
10.3  小結(jié)  157
第三部分  IDA 高級(jí)應(yīng)用
第11 章  定制IDA   160
11.1  配置文件  160
11.1.1  主配置文件:ida.cfg  160
11.1.2  GUI 配置文件:idagui.cfg   161
11.1.3  控制臺(tái)配置文件:idatui.cfg   163
11.2  其他IDA 配置選項(xiàng)   164
11.2.1  IDA 顏色  165
11.2.2  定制IDA 工具欄   165
11.3  小結(jié)  167
第12 章  使用FLIRT 簽名來(lái)識(shí)別庫(kù)  168
12.1  快速庫(kù)識(shí)別和鑒定技術(shù)  168
12.2  應(yīng)用FLIRT 簽名  169
12.3  創(chuàng)建FLIRT 簽名文件  172
12.3.1  創(chuàng)建簽名概述  172
12.3.2  識(shí)別和獲取靜態(tài)庫(kù)  173
12.3.3  創(chuàng)建模式文件  174
12.3.4  創(chuàng)建簽名文件  175
12.3.5  啟動(dòng)簽名  178
12.4  小結(jié)  178
第13 章  擴(kuò)展IDA 的知識(shí)  179
13.1  擴(kuò)充函數(shù)信息  179
13.1.1  IDS 文件  181
13.1.2  創(chuàng)建IDS 文件  182
13.2  使用loadint 擴(kuò)充預(yù)定義注釋  184
13.3  小結(jié)  185
第14 章  修補(bǔ)二進(jìn)制文件及其他IDA 限制  186
14.1  隱藏的補(bǔ)丁程序菜單  186
14.1.1  更改數(shù)據(jù)庫(kù)字節(jié)  187
14.1.2  更改數(shù)據(jù)庫(kù)中的字  187
14.1.3  使用匯編對(duì)話(huà)框  188
14.2  IDA 輸出文件與補(bǔ)丁生成  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  小結(jié)  192
第四部分  擴(kuò)展IDA 的功能
第15 章  編寫(xiě)IDA 腳本  194
15.1  執(zhí)行腳本的基礎(chǔ)知識(shí)  194
15.2  IDC 語(yǔ)言  196
15.2.1  IDC 變量  196
15.2.2  IDC 表達(dá)式  197
15.2.3  IDC 語(yǔ)句  197
15.2.4  IDC 函數(shù)  198
15.2.5  IDC 對(duì)象  200
15.2.6  IDC 程序  200
15.2.7  IDC 錯(cuò)誤處理  201
15.2.8  IDC 永久數(shù)據(jù)存儲(chǔ)  202
15.3  關(guān)聯(lián)IDC 腳本與熱鍵  203
15.4  有用的IDC 函數(shù)  204
15.4.1  讀取和修改數(shù)據(jù)的函數(shù)  204
15.4.2  用戶(hù)交互函數(shù)  205
15.4.3  字符串操縱函數(shù)  206
15.4.4  文件輸入/輸出函數(shù)  206
15.4.5  操縱數(shù)據(jù)庫(kù)名稱(chēng)  207
15.4.6  處理函數(shù)的函數(shù)  207
15.4.7  代碼交叉引用函數(shù)  208
15.4.8  數(shù)據(jù)交叉引用函數(shù)  209
15.4.9  數(shù)據(jù)庫(kù)操縱函數(shù)  209
15.4.10  數(shù)據(jù)庫(kù)搜索函數(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  枚舉導(dǎo)出的函數(shù)  214
15.5.5  查找和標(biāo)記函數(shù)參數(shù)  215
15.5.6  模擬匯編語(yǔ)言行為  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  枚舉導(dǎo)出的函數(shù)  222
15.8  小結(jié)   223
第16 章  IDA 軟件開(kāi)發(fā)工具包   224
16.1  SDK 簡(jiǎn)介  225
16.1.1  安裝SDK  225
16.1.2  SDK 的布局   225
16.1.3  配置構(gòu)建環(huán)境  226
16.2  IDA 應(yīng)用編程接口  227
16.2.1  頭文件概述   228
16.2.2  網(wǎng)絡(luò)節(jié)點(diǎn)   230
16.2.3  有用的SDK 數(shù)據(jù)類(lèi)型   237
16.2.4  常用的SDK 函數(shù)   238
16.2.5  IDA API 迭代技巧  242
16.3  小結(jié)   246
第17 章  IDA 插件體系結(jié)構(gòu)   247
17.1  編寫(xiě)插件   247
17.1.1  插件生命周期   249
17.1.2  插件初始化   250
17.1.3  事件通知   251
17.1.4  插件執(zhí)行   252
17.2  構(gòu)建插件  254
17.3  插件安裝  258
17.4  插件配置  259
17.5  擴(kuò)展IDC   259
17.6  插件用戶(hù)界面選項(xiàng)   262
17.6.1  使用SDK 的“選擇器”對(duì)話(huà)框   262
17.6.2  使用SDK 創(chuàng)建自定義表單   265
17.6.3  僅用于Windows 的用戶(hù)界面生成技巧   269
17.6.4  使用Qt 生成用戶(hù)界面  269
17.7  腳本化插件   271
17.8  小結(jié)  272
第18 章  二進(jìn)制文件與IDA 加載器模塊   273
18.1  未知文件分析   274
18.2  手動(dòng)加載一個(gè)Windows PE 文件   275
18.3  IDA 加載器模塊   281
18.4  使用SDK 編寫(xiě)IDA 加載器  282
18.4.1  “傻瓜式”加載器  284
18.4.2  構(gòu)建IDA 加載器模塊  288
18.4.3  IDA pcap 加載器  288
18.5  其他加載器策略  294
18.6  編寫(xiě)腳本化加載器  294
18.7  小結(jié)  296
第19 章  IDA 處理器模塊  297
19.1  Python 字節(jié)碼  298
19.2  Python 解釋器  298
19.3  使用SDK 編寫(xiě)處理器模塊  299
19.3.1  processor_t 結(jié)構(gòu)體  299
19.3.2  LPH 結(jié)構(gòu)體的基本初始化  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  構(gòu)建處理器模塊  318
19.5  定制現(xiàn)有的處理器  322
19.6  處理器模塊體系結(jié)構(gòu)  324
19.7  編寫(xiě)處理器模塊  325
19.8  小結(jié)  326
第五部分  實(shí)際應(yīng)用
第20 章  編譯器變體  328
20.1  跳轉(zhuǎn)表與分支語(yǔ)句  328
20.2  RTTI 實(shí)現(xiàn)  332
20.3  定位main 函數(shù)  332
20.4  調(diào)試版與發(fā)行版二進(jìn)制文件  339
20.5  其他調(diào)用約定  341
20.6  小結(jié)  342
第21 章  模糊代碼分析  344
21.1  反靜態(tài)分析技巧  344
21.1.1  反匯編去同步  344
21.1.2  動(dòng)態(tài)計(jì)算目標(biāo)地址  347
21.1.3  導(dǎo)入的函數(shù)模糊  353
21.1.4  有針對(duì)性地攻擊分析工具  356
21.2  反動(dòng)態(tài)分析技巧  357
21.2.1  檢測(cè)虛擬化  357
21.2.2  檢測(cè)“檢測(cè)工具”   358
21.2.3  檢測(cè)調(diào)試器  359
21.2.4  防止調(diào)試  360
21.3  使用IDA 對(duì)二進(jìn)制文件進(jìn)行“靜態(tài)去模糊”   361
21.3.1  面向腳本的去模糊  361
21.3.2  面向模擬的去模糊  366
21.4  基于虛擬機(jī)的模糊  375
21.5  小結(jié)  377
第22 章  漏洞分析  378
22.1  使用IDA 發(fā)現(xiàn)新的漏洞  379
22.2  使用IDA 在事后發(fā)現(xiàn)漏洞  384
22.3  IDA 與破解程序開(kāi)發(fā)過(guò)程  388
22.3.1  棧幀細(xì)目  389
22.3.2  定位指令序列  392
22.3.3  查找有用的虛擬地址  394
22.4  分析shellcode  395
22.5  小結(jié)  397
第23 章  實(shí)用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  小結(jié)  408
第六部分  IDA 調(diào)試器
第24 章  IDA 調(diào)試器  410
24.1  啟動(dòng)調(diào)試器  410
24.2  調(diào)試器的基本顯示  414
24.3  進(jìn)程控制  416
24.3.1  斷點(diǎn)  417
24.3.2  跟蹤  420
24.3.3  棧跟蹤  422
24.3.4  監(jiān)視  423
24.4  調(diào)試器任務(wù)自動(dòng)化  423
24.4.1  為調(diào)試器操作編寫(xiě)腳本  424
24.4.2  使用IDA 插件實(shí)現(xiàn)調(diào)試器操作自動(dòng)化  428
24.5  小結(jié)  430
第25 章  反匯編器/調(diào)試器集成  431
25.1  背景知識(shí)  431
25.2  IDA 數(shù)據(jù)庫(kù)與IDA 調(diào)試器  432
25.3  調(diào)試模糊代碼  434
25.3.1  啟動(dòng)進(jìn)程  435
25.3.2  簡(jiǎn)單的解密和解壓循環(huán)  436
25.3.3  導(dǎo)入表重建  439
25.3.4  隱藏調(diào)試器  443
25.4  IDAStealth   448
25.5  處理異常  449
25.6  小結(jié)  454
第26 章  其他調(diào)試功能   455
26.1  使用IDA 進(jìn)行遠(yuǎn)程調(diào)試   455
26.1.1  使用Hex-Rays 調(diào)試服務(wù)器   455
26.1.2  連接到遠(yuǎn)程進(jìn)程   458
26.1.3  遠(yuǎn)程調(diào)試期間的異常處理   458
26.1.4  在遠(yuǎn)程調(diào)試過(guò)程中使用腳本和插件  458
26.2  使用Bochs 進(jìn)行調(diào)試   459
26.2.1  Bochs IDB 模式  459
26.2.2  Bochs PE 模式  460
26.2.3  Bochs 磁盤(pán)映像模式  461
26.3  Appcall    461
26.4  小結(jié)  463
附錄A  使用IDA 免費(fèi)版本5.0    464
附錄B  IDC/SDK 交叉引用   466

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)