有人這樣評(píng)價(jià)windows pe權(quán)威指南這本書——總體來說,在國內(nèi)PE書籍欠缺的情況下也不失為一本好書了。另外小編要向大家介紹的是windows pe權(quán)威指南這本書用的是win32匯編,只學(xué)過8086匯編的同學(xué)學(xué)一下win32匯編會(huì)比較好理解本書,另外本書還教你自己寫3個(gè)分析PE的小工具,懂win32匯編的話比較能夠理解這些工具的開發(fā)思路。本節(jié)內(nèi)容小編為大家整理帶來的這份windows pe權(quán)威指南為epub格式免費(fèi)完整版,以下是關(guān)于該電子書的相關(guān)介紹,有需要的朋友可以先了解一下該書籍教程哦!
windows pe權(quán)威指南目錄
前言
第一部分 PE的原理和基礎(chǔ)
第1章 Windows PE 開發(fā)環(huán)境/2
1.1 開發(fā)語言MASM32 /2
1.1.1 設(shè)置開發(fā)環(huán)境/3
1.1.2 開發(fā)第一個(gè)源程序HelloWorld.asm /5
1.1.3 運(yùn)行HelloWorld.exe /7
1.2 調(diào)試軟件OllyDBG /10
1.2.1 調(diào)試HelloWorld.exe /10
1.2.2 修改EXE文件字節(jié)碼 /16
1.3 十六進(jìn)制編輯軟件FlexHex /18
1.4 破解實(shí)例:U盤監(jiān)控器 /20
1.5 初識(shí)PE文件 /23
1.6 小結(jié) /26
第2章 三個(gè)小工具的編寫/27
2.1 構(gòu)造基本窗口程序/27
2.1.1 構(gòu)造窗口界面/27
2.1.2 編寫相關(guān)的資源文件/28
2.1.3 通用程序框架的實(shí)現(xiàn)/29
2.2 PEDump的實(shí)現(xiàn)/32
2.2.1 編程思路/32
2.2.2 PEDump編碼/34
2.2.3 PEDump代碼中的數(shù)據(jù)結(jié)構(gòu)/38
2.2.4 運(yùn)行PEDump /39
2.3 PEComp的實(shí)現(xiàn)/40
2.3.1 編程思路/41
2.3.2 定義資源文件/41
2.3.3 PEComp編碼/41
2.3.4 運(yùn)行PEComp /47
2.4 PEInfo的實(shí)現(xiàn)/47
2.4.1 編程思路/48
2.4.2 PEInfo編碼/48
2.4.3 運(yùn)行PEInfo /52
2.5 小結(jié)/53
第3章 PE文件頭/54
3.1 PE的數(shù)據(jù)組織方式/54
3.2 與PE有關(guān)的基本概念/58
3.2.1 地址/58
3.2.2 指針/60
3.2.3 數(shù)據(jù)目錄/60
3.2.4 節(jié)/60
3.2.5 對(duì)齊/61
3.2.6 Unicode字符串/62
3.3 PE文件結(jié)構(gòu)/62
3.3.1 16位系統(tǒng)下的PE結(jié)構(gòu)/62
3.3.2 32位系統(tǒng)下的PE結(jié)構(gòu)/66
3.3.3 程序員眼中的PE結(jié)構(gòu)/68
3.4 PE文件頭部解析/69
3.4.1 DOS MZ頭IMAGE_DOS_HEADER /69
3.4.2 PE頭標(biāo)識(shí)Signature /69
3.4.3 標(biāo)準(zhǔn)PE頭IMAGE_FILE_HEADER /70
3.4.4 擴(kuò)展PE頭IMAGE_OPTIONAL_HEADER32 /70
3.4.5 PE頭IMAGE_NT_HEADERS /71
3.4.6 數(shù)據(jù)目錄項(xiàng)IMAGE_DATA_DIRECTORY /71
3.4.7 節(jié)表項(xiàng)IMAGE_SECTION_HEADER /74
3.5 數(shù)據(jù)結(jié)構(gòu)字段詳解/74
3.5.1 PE頭IMAGE_NT_HEADER的字段/75
3.5.2 標(biāo)準(zhǔn)PE頭IAMGE_FILE_HEADER的字段/75
3.5.3 擴(kuò)展PE頭IMAGE_OPTIONAL_HEADER32的字段/78
3.5.4 數(shù)據(jù)目錄項(xiàng)IMAGE_DATA_DIRECTORY的字段/87
3.5.5 節(jié)表項(xiàng)IMAGE_SECTION_HEADER的字段/87
3.5.6 解析HelloWorld程序的字節(jié)碼/88
3.6 PE內(nèi)存映像/92
3.7 PE文件頭編程/93
3.7.1 RVA與FOA的轉(zhuǎn)換/93
3.7.2 數(shù)據(jù)定位/95
3.7.3 標(biāo)志位操作/101
3.7.4 PE校驗(yàn)和/102
3.8 小結(jié)/104
第4章 導(dǎo)入表/105
4.1 何謂導(dǎo)入表/105
4.2 導(dǎo)入函數(shù)/105
4.2.1 invoke指令分解/106
4.2.2 導(dǎo)入函數(shù)地址/107
4.2.3 導(dǎo)入函數(shù)宿主/109
4.3 PE中的導(dǎo)入表/112
4.3.1 導(dǎo)入表定位/112
4.3.2 導(dǎo)入表描述符IMAGE_IMPORT_DESCRIPTOR /113
4.3.3 導(dǎo)入表的雙橋結(jié)構(gòu)/114
4.3.4 導(dǎo)入函數(shù)地址表/116
4.3.5 構(gòu)造調(diào)用同一個(gè)DLL文件的多個(gè)函數(shù)的導(dǎo)入表/117
4.4 導(dǎo)入表編程/121
4.4.1 導(dǎo)入表遍歷的思路/121
4.4.2 編寫函數(shù)_getImportInfo /122
4.4.3 運(yùn)行測(cè)試/124
4.5 綁定導(dǎo)入/124
4.5.1 綁定導(dǎo)入機(jī)制/124
4.5.2 綁定導(dǎo)入數(shù)據(jù)定位/125
4.5.3 綁定導(dǎo)入數(shù)據(jù)結(jié)構(gòu)/126
4.5.4 綁定導(dǎo)入實(shí)例分析/127
4.6 手工重組導(dǎo)入表/128
4.6.1 常用注冊(cè)表API /128
4.6.2 構(gòu)造目標(biāo)指令/132
4.6.3 PE頭部變化/135
4.6.4 手工重組/136
4.6.5 程序?qū)崿F(xiàn)/141
4.6.6 思考:關(guān)于IAT的連貫性/142
4.6.7 思考:關(guān)于導(dǎo)入表的位置/143
4.7 小結(jié)/144
第5章 導(dǎo)出表/145
5.1 導(dǎo)出表的作用/145
5.1.1 分析動(dòng)態(tài)鏈接庫功能/145
5.1.2 獲得導(dǎo)出函數(shù)地址/146
5.2 構(gòu)造含導(dǎo)出表的PE文件/146
5.2.1 DLL源代碼/147
5.2.2 編寫def文件/151
5.2.3 編譯和鏈接/152
5.2.4 編寫頭文件/152
5.2.5 使用導(dǎo)出函數(shù)/152
5.3 導(dǎo)出表數(shù)據(jù)結(jié)構(gòu)/155
5.3.1 導(dǎo)出表定位/155
5.3.2 導(dǎo)出目錄IMAGE_EXPORT_DIRECTORY/156
5.3.3 導(dǎo)出表實(shí)例分析/158
5.4 導(dǎo)出表編程/160
5.4.1 根據(jù)編號(hào)查找函數(shù)地址/160
5.4.2 根據(jù)名字查找函數(shù)地址/160
5.4.3 遍歷導(dǎo)出表/162
5.5 導(dǎo)出表的應(yīng)用/165
5.5.1 導(dǎo)出函數(shù)覆蓋/165
5.5.2 導(dǎo)出私有函數(shù)/167
5.6 小結(jié)/169
第6 章 棧與重定位表/170
6.1 棧/170
6.1.1 棧的應(yīng)用場(chǎng)合/170
6.1.2 call調(diào)用中的棧實(shí)例分析/173
6.1.3 棧溢出/177
6.2 代碼重定位/181
6.2.1 重定位的提出 /181
6.2.2 實(shí)現(xiàn)重定位的方法/182
6.2.3 重定位編程/183
6.3 PE文件頭中的重定位表/189
6.3.1 重定位表定位/189
6.3.2 重定位表項(xiàng)IMAGE_BASE_RELOCATION /190
6.3.3 重定位表的結(jié)構(gòu)/191
6.3.4 遍歷重定位表/192
6.3.5 重定位表實(shí)例分析/195
6.4 小結(jié)/196
第7章 資源表/197
7.1 資源分類/197
7.1.1 位圖、光標(biāo)、圖標(biāo)資源/199
7.1.2 菜單資源/199
7.1.3 對(duì)話框資源/200
7.1.4 自定義資源/201
7.2 PE資源表組織/202
7.2.1 資源表的組織方式/202
7.2.2 資源表數(shù)據(jù)定位/203
7.2.3 資源目錄頭IMAGE_RESOURCE_DIRECTORY /204
7.2.4 資源目錄項(xiàng)IMAGE_RESOURCE_DIRECTORY_ENTRY /205
7.2.5 資源數(shù)據(jù)項(xiàng)IMAGE_RESOURCE_DATA_ENTRY /206
7.2.6 三級(jí)結(jié)構(gòu)中目錄項(xiàng)的區(qū)別/207
7.3 資源表遍歷/208
7.4 PE資源深度解析/213
7.4.1 資源腳本/213
7.4.2 使用PEInfo分析資源表/214
7.4.3 菜單資源解析/216
7.4.4 圖標(biāo)資源解析/218
7.4.5 圖標(biāo)組資源解析/223
7.4.6 對(duì)話框資源解析/224
7.5 資源表編程/228
7.5.1 更改圖標(biāo)實(shí)驗(yàn)/229
7.5.2 提取程序圖標(biāo)實(shí)例/231
7.5.3 更改程序圖標(biāo)實(shí)例/241
7.6 小結(jié)/244
第8章 延遲加載導(dǎo)入表/245
8.1 延遲加載導(dǎo)入的概念及其作用/245
8.1.1 提高應(yīng)用程序加載速度/246
8.1.2 提高應(yīng)用程序兼容性/246
8.1.3 提高應(yīng)用程序可整合性/247
8.2 PE中的延遲加載導(dǎo)入表/247
8.2.1 延遲加載導(dǎo)入表數(shù)據(jù)定位/247
8.2.2 延遲加載導(dǎo)入描述符IMAGE_DELAY_IMPORT_DESCRIPTOR /248
8.2.3 延遲加載導(dǎo)入表實(shí)例分析/249
8.3 延遲加載導(dǎo)入機(jī)制詳解/251
8.4 延遲加載導(dǎo)入編程/253
8.4.1 修改資源文件pe.rc /253
8.4.2 修改源代碼pe.asm /253
8.5 關(guān)于延遲加載導(dǎo)入的兩個(gè)問題/255
8.5.1 異常處理/255
8.5.2 DLL的卸載/255
8.6 小結(jié)/256
第9章 線程局部存儲(chǔ)/257
9.1 Windows進(jìn)程與線程/257
9.1.1 Windows體系結(jié)構(gòu)/257
9.1.2 進(jìn)程與線程創(chuàng)建/258
9.1.3 進(jìn)程環(huán)境塊PEB /262
9.1.4 線程環(huán)境塊TEB /264
9.2 什么是線程局部存儲(chǔ)/265
9.3 動(dòng)態(tài)線程局部存儲(chǔ)/267
9.3.1 動(dòng)態(tài)TLS實(shí)例/267
9.3.2 獲取索引TlsAlloc /274
9.3.3 按索引取值TlsGetValue /275
9.3.4 按索引存儲(chǔ)TlsSetValue /275
9.3.5 釋放索引TlsFree /275
9.4 靜態(tài)線程局部存儲(chǔ)/276
9.4.1 TLS定位/277
9.4.2 TLS目錄結(jié)構(gòu)IMAGE_TLS_DIRECTORY32 /278
9.4.3 靜態(tài)TLS實(shí)例分析/278
9.4.4 TLS回調(diào)函數(shù)/279
9.4.5 測(cè)試靜態(tài)TLS下的線程存儲(chǔ)初始化回調(diào)函數(shù)/280
9.5 小結(jié)/281
第10章 加載配置信息/282
10.1 何謂加載配置信息/282
10.2 Windows結(jié)構(gòu)化異常處理/282
10.2.1 什么是SEH /283
10.2.2 Windows異常分類/285
10.2.3 內(nèi)核模式下的異常處理/286
10.2.4 用戶模式下的異常處理/289
10.2.5 Windows SEH機(jī)制解析/294
10.2.6 SEH編程實(shí)例/295
10.3 PE中的加載配置信息/299
10.3.1 加載配置信息定位/300
10.3.2 加載配置目錄IMAGE_LOAD_CONFIG_DIRECTORY /300
10.3.3 加載配置信息實(shí)例分析/302
10.4 加載配置編程/303
10.4.1 程序源代碼分析/304
10.4.2 為PE添加加載配置信息/306
10.4.3 運(yùn)行測(cè)試/306
10.4.4 注冊(cè)多個(gè)異常處理函數(shù)示例/307
10.5 小結(jié)/309
第11章 動(dòng)態(tài)加載技術(shù)/310
11.1 Windows虛擬地址空間分配/310
11.1.1 用戶態(tài)低2GB空間分配/310
11.1.2 核心態(tài)高2GB空間分配/311
11.1.3 HelloWorld進(jìn)程空間分析/312
11.2 Windows動(dòng)態(tài)庫技術(shù)/313
11.2.1 DLL靜態(tài)調(diào)用/313
11.2.2 DLL動(dòng)態(tài)調(diào)用/314
11.2.3 導(dǎo)出函數(shù)起始地址實(shí)例/314
11.3 在編程中使用動(dòng)態(tài)加載技術(shù)/315
11.3.1 獲取kernel32.dll基地址/316
11.3.2 獲取GetProcAddress地址/322
11.3.3 在代碼中使用獲取的函數(shù)地址編程/325
11.3.4 動(dòng)態(tài)API技術(shù)編程實(shí)例/327
11.4 小結(jié)/330
第二部分 PE進(jìn)階
第12章 PE變形技術(shù)/332
12.1 變形技術(shù)的分類/332
12.1.1 結(jié)構(gòu)重疊技術(shù)/332
12.1.2 空間調(diào)整技術(shù)/333
12.1.3 數(shù)據(jù)轉(zhuǎn)移技術(shù)/334
12.1.4 數(shù)據(jù)壓縮技術(shù)/338
12.2 變形技術(shù)可用的空間/341
12.2.1 文件頭部未用的字段/341
12.2.2 大小不固定的數(shù)據(jù)塊/343
12.2.3 因?qū)R產(chǎn)生的補(bǔ)足空間/344
12.3 PE文件變形原則/344
12.3.1 關(guān)于數(shù)據(jù)目錄表/344
12.3.2 關(guān)于節(jié)表/344
12.3.3 關(guān)于導(dǎo)入表/344
12.3.4 關(guān)于程序數(shù)據(jù)/345
12.3.5 關(guān)于對(duì)齊/345
12.3.6 幾個(gè)關(guān)注的字段/345
12.4 將PE變小的實(shí)例HelloWorldPE /346
12.4.1 源程序HelloWorld的字節(jié)碼(2560字節(jié)) /346
12.4.2 目標(biāo)PE文件的字節(jié)碼(432字節(jié))/348
12.5 打造目標(biāo)PE的步驟/349
12.5.1 對(duì)文件頭的處理/349
12.5.2 對(duì)代碼段的處理/350
12.5.3 對(duì)導(dǎo)入表的處理/351
12.5.4 對(duì)部分字段值的修正/351
12.5.5 修改后的文件結(jié)構(gòu)/352
12.5.6 修改后的文件分析/353
12.5.7 目標(biāo)文件更小的實(shí)例分析/354
12.6 小結(jié)/359
第13章 PE補(bǔ)丁技術(shù)/360
13.1 動(dòng)態(tài)補(bǔ)丁/360
13.1.1 進(jìn)程間的通信機(jī)制/360
13.1.2 讀寫進(jìn)程內(nèi)存/363
13.1.3 目標(biāo)進(jìn)程枚舉/368
13.1.4 執(zhí)行遠(yuǎn)程線程/373
13.2 靜態(tài)補(bǔ)丁/379
13.2.1 整體替換PE文件/379
13.2.2 整體替換DLL文件/385
13.2.3 部分修改PE文件/387
13.3 嵌入補(bǔ)丁程序/388
13.3.1 嵌入補(bǔ)丁程序框架/388
13.3.2 嵌入補(bǔ)丁程序編寫規(guī)則/394
13.3.3 嵌入補(bǔ)丁字節(jié)碼實(shí)例分析/395
13.4 萬能補(bǔ)丁碼/396
13.4.1 原理/396
13.4.2 源代碼/397
13.4.3 字節(jié)碼/399
13.4.4 運(yùn)行測(cè)試/399
13.5 小結(jié)/399
第14章 在PE空閑空間中插入程序/400
14.1 什么是 PE空閑空間/400
14.1.1 PE文件中的可用空間/400
14.1.2 獲取PE文件可用空間的代碼/400
14.1.3 獲取PE文件可用空間的測(cè)試/403
14.2 添加注冊(cè)表啟動(dòng)項(xiàng)的補(bǔ)丁程序?qū)嵗?/403
14.2.1 補(bǔ)丁程序的源代碼/403
14.2.2 補(bǔ)丁程序的字節(jié)碼/404
14.2.3 目標(biāo)PE的字節(jié)碼/405
14.3 手工打造目標(biāo)PE的步驟/408
14.3.1 基本思路/408
14.3.2 對(duì)代碼段的處理/408
14.3.3 對(duì)導(dǎo)入表的處理/413
14.3.4 對(duì)數(shù)據(jù)段的處理/418
14.3.5 修改前后PE文件對(duì)比/421
14.4 開發(fā)補(bǔ)丁工具/422
14.4.1 編程思路/422
14.4.2 數(shù)據(jù)結(jié)構(gòu)分析/423
14.4.3 運(yùn)行測(cè)試/427
14.4.4 適應(yīng)性測(cè)試實(shí)例分析/430
14.5 小結(jié)/434
第15章 在PE間隙中插入程序/435
15.1 什么是PE間隙/435
15.1.1 構(gòu)造間隙一/436
15.1.2 間隙一與參數(shù)/436
15.2 插入HelloWorld的補(bǔ)丁程序?qū)嵗?437
15.2.1 補(bǔ)丁程序字節(jié)碼/437
15.2.2 目標(biāo)PE結(jié)構(gòu)/439
15.3 開發(fā)補(bǔ)丁工具/439
15.3.1 編程思路/439
15.3.2 數(shù)據(jù)結(jié)構(gòu)分析/440
15.3.3 主要代碼/442
15.3.4 運(yùn)行測(cè)試/447
15.4 存在綁定導(dǎo)入數(shù)據(jù)的PE補(bǔ)丁程序?qū)嵗?/448
15.4.1 改進(jìn)補(bǔ)丁程序/448
15.4.2 修正補(bǔ)丁工具/450
15.4.3 為記事本程序打補(bǔ)丁/456
15.5 小結(jié)/457
第16章 在PE新增節(jié)中插入程序/458
16.1 新增PE節(jié)的方法/458
16.2 在本地建立子目錄的補(bǔ)丁程序?qū)嵗?/458
16.2.1 補(bǔ)丁程序源代碼/459
16.2.2 目標(biāo)PE結(jié)構(gòu) /464
16.3 開發(fā)補(bǔ)丁工具 /465
16.3.1 編程思路/465
16.3.2 為變量賦值/466
16.3.3 構(gòu)造新文件數(shù)據(jù)/466
16.3.4 修正字段參數(shù)/466
16.3.5 主要代碼/467
16.3.6 運(yùn)行測(cè)試/475
16.4 小結(jié)/475
第17章 在PE最后一節(jié)中插入程序/476
17.1 網(wǎng)絡(luò)文件下載器補(bǔ)丁程序?qū)嵗?476
17.1.1 用到的API函數(shù)/476
17.1.2 補(bǔ)丁功能的預(yù)演代碼/482
17.1.3 補(bǔ)丁程序的源代碼/484
17.1.4 目標(biāo)PE結(jié)構(gòu)/485
17.2 開發(fā)補(bǔ)丁工具/486
17.2.1 編程思路/486
17.2.2 主要代碼/487
17.2.3 運(yùn)行測(cè)試/490
17.3 小結(jié)/491
第三部分 PE的應(yīng)用案例
第18章 EXE捆綁器/494
18.1 基本思路 /494
18.2 EXE執(zhí)行調(diào)度機(jī)制 /495
18.2.1 相關(guān)API函數(shù)/495
18.2.2 控制進(jìn)程同步運(yùn)行實(shí)例分析/499
18.3 字節(jié)碼轉(zhuǎn)換工具h(yuǎn)ex2db /500
18.3.1 hex2db源代碼/500
18.3.2 運(yùn)行測(cè)試/507
18.4 執(zhí)行調(diào)度程序_host.exe /508
18.4.1 主要代碼/508
18.4.2 數(shù)據(jù)結(jié)構(gòu)分析/510
18.5 宿主程序host.exe /511
18.5.1 宿主程序的功能/511
18.5.2 宿主程序的狀態(tài)/511
18.5.3 遍歷文件/512
18.5.4 釋放文件/514
18.5.5 宿主程序主函數(shù)/517
18.6 EXE捆綁器bind.exe /517
18.6.1 綁定列表定位/517
18.6.2 捆綁步驟及主要代碼/518
18.6.3 測(cè)試運(yùn)行/523
18.7 小結(jié)/524
第19章 軟件安裝自動(dòng)化/525
19.1 基本思路/525
19.2 補(bǔ)丁程序patch.exe /525
19.2.1 相關(guān)API函數(shù)/526
19.2.2 執(zhí)行線程函數(shù)/526
19.2.3 簡單測(cè)試/528
19.3 消息發(fā)送器_Message.exe /529
19.3.1 窗口枚舉回調(diào)函數(shù)/529
19.3.2 調(diào)用窗口枚舉函數(shù)/530
19.3.3 向指定窗口發(fā)送消息/531
19.3.4 消息發(fā)送器源代碼/532
19.3.5 測(cè)試運(yùn)行/535
19.4 消息發(fā)送器生成工廠MessageFactory.exe /535
19.4.1 消息發(fā)送函數(shù)/535
19.4.2 鍵盤虛擬碼/537
19.4.3 改進(jìn)的消息發(fā)送器實(shí)例分析/540
19.4.4 消息發(fā)送器生成工廠代碼結(jié)構(gòu)/542
19.4.5 代碼與數(shù)據(jù)的定位/544
19.4.6 提取代碼字節(jié)碼/545
19.5 軟件安裝自動(dòng)化主程序AutoSetup.exe /548
19.5.1 主要代碼/548
19.5.2 測(cè)試運(yùn)行/552
19.6 小結(jié)/554
第20章 EXE加鎖器/555
20.1 基本思路/555
20.2 免資源文件的窗口程序nores.asm /556
20.2.1 窗口創(chuàng)建函數(shù)CreateWindowEx /556
20.2.2 創(chuàng)建用戶登錄窗口的控件/558
20.2.3 窗口程序源代碼 /558
20.3 免重定位的窗口程序login.asm /562
20.4 補(bǔ)丁程序patch.asm /570
20.4.1 獲取導(dǎo)入庫及函數(shù)/570
20.4.2 按照補(bǔ)丁框架修改login.asm /571
20.4.3 補(bǔ)丁程序主要代碼/572
20.5 附加補(bǔ)丁運(yùn)行/573
20.6 小結(jié)/575
第21章 EXE加密/576
21.1 基本思路/576
21.2 加密算法/577
21.2.1 加密算法的分類/577
21.2.2 自定義可逆加密算法實(shí)例/578
21.2.3 構(gòu)造加密基表/579
21.2.4 利用基表測(cè)試加密數(shù)據(jù)/581
21.3 開發(fā)補(bǔ)丁工具/582
21.3.1 轉(zhuǎn)移數(shù)據(jù)目錄/582
21.3.2 傳遞程序參數(shù)/585
21.3.3 加密節(jié)區(qū)內(nèi)容/587
21.4 處理補(bǔ)丁程序/588
21.4.1 還原數(shù)據(jù)目錄表/588
21.4.2 解密節(jié)區(qū)內(nèi)容/590
21.4.3 加載目標(biāo)DLL /592
21.4.4 修正目標(biāo)IAT /594
21.5 小結(jié)/595
第22章 PE病毒提示器/596
22.1 基本思路 /596
22.1.1 志愿者的選擇條件/596
22.1.2 判斷病毒感染的原理/597
22.2 手工打造PE病毒提示器 /597
22.2.1 編程思路 /597
22.2.2 分析目標(biāo)文件的導(dǎo)入表 /598
22.2.3 補(bǔ)丁程序的源代碼/601
22.2.4 補(bǔ)丁程序的字節(jié)碼/608
22.2.5 修正函數(shù)地址/609
22.2.6 測(cè)試運(yùn)行/610
22.3 補(bǔ)丁版的PE病毒提示器/611
22.3.1 將提示器寫入啟動(dòng)項(xiàng)/611
22.3.2 檢測(cè)特定位置校驗(yàn)和/612
22.3.3 測(cè)試運(yùn)行/615
22.4 小結(jié)/617
第23章 破解PE病毒/618
23.1 病毒保護(hù)技術(shù)/618
23.1.1 花指令/619
23.1.2 反跟蹤技術(shù)/620
23.1.3 反調(diào)試技術(shù)/621
23.1.4 自修改技術(shù)/624
23.1.5 注冊(cè)表項(xiàng)保護(hù)技術(shù)/625
23.1.6 進(jìn)程保護(hù)技術(shù)/627
23.2 PE病毒補(bǔ)丁程序解析/632
23.2.1 病毒特征/633
23.2.2 補(bǔ)丁程序的源代碼分析/633
23.2.3 病毒傳播測(cè)試/648
23.2.4 感染前后PE結(jié)構(gòu)對(duì)比/650
23.3 解毒代碼的編寫/650
23.3.1 基本思路/651
23.3.2 計(jì)算病毒代碼大小/651
23.3.3 獲取原始入口地址/652
23.3.4 修正PE頭部的其他參數(shù)/652
23.3.5 主要代碼/653
23.3.6 運(yùn)行測(cè)試 /656
23.4 小結(jié)/657
后記/658
windows pe權(quán)威指南內(nèi)容簡介
內(nèi)容全面,詳盡地剖析了Windows PE文件格式的原理及其編程技術(shù),涉及安全領(lǐng)域的各個(gè)方面和Windows系統(tǒng)的進(jìn)程管理和底層機(jī)制;實(shí)戰(zhàn)性強(qiáng),以案例驅(qū)動(dòng)的方式講解了Windows PE文件格式在加密與解密、軟件漢化、逆向工程、反病毒等安全領(lǐng)域的應(yīng)用,不僅每個(gè)知識(shí)點(diǎn)都配有小案例,而且還有多個(gè)完整的商業(yè)案例。
全書共分為三大部分:第一部分簡單介紹了學(xué)習(xí)本書需要搭建的工作環(huán)境和必須具備的工具,深入分析了PE文件頭、導(dǎo)入表、導(dǎo)出表、重定位表、資源表、延遲導(dǎo)入表、線程局部存儲(chǔ)、加載配置信息等核心技術(shù)的概念、原理及其編程方法,針對(duì)性地講解了程序設(shè)計(jì)中的重定位、程序堆棧、動(dòng)態(tài)加載等;第二部分討論了PE頭部的變形技術(shù)及靜態(tài)附加補(bǔ)丁的技術(shù),其中靜態(tài)附加補(bǔ)丁技術(shù)重點(diǎn)講解了如何在空閑空間、間隙、新節(jié)、最后一節(jié)等四種情況下打補(bǔ)丁和進(jìn)行編碼的方法;第三部分精心編寫了多個(gè)大型而完整的PE應(yīng)用案例,以PE補(bǔ)丁作為重要手段,通過對(duì)目標(biāo)PE文件實(shí)施不同的補(bǔ)丁內(nèi)容來實(shí)現(xiàn)不同的應(yīng)用,詳細(xì)展示了EXE捆綁器、軟件安裝自動(dòng)化、EXE加鎖器、EXE加密、PE病毒提示器以及PE病毒的實(shí)現(xiàn)過程和方法。
本書不僅適合想深入理解Windows系統(tǒng)進(jìn)程管理和運(yùn)作機(jī)制的讀者,而且還適合從事加密與解密、軟件漢化、逆向工程、反病毒工作的安全工作者。此外,它還適合想全面了解Windows PE文件結(jié)構(gòu)和對(duì)程序字節(jié)碼感興趣的讀者。
windows pe權(quán)威指南內(nèi)容截圖
。
- PC官方版
- 安卓官方手機(jī)版
- IOS官方手機(jī)版