關(guān)于我們
書單推薦
新書推薦
|
加密與解密(第4版) 讀者對象:本書適合安全技術(shù)相關(guān)工作者、對逆向調(diào)試技術(shù)感興趣的人、對軟件保護感興趣的軟件開發(fā)人員、相關(guān)專業(yè)在校學生及關(guān)注個人信息安全、計算機安全技術(shù)并想了解技術(shù)內(nèi)幕的讀者閱讀。
本書以軟件逆向為切入點,講述了軟件安全領(lǐng)域相關(guān)的基礎(chǔ)知識和技能。讀者閱讀本書后,很容易就能在逆向分析、漏洞分析、安全編程、病毒分析等領(lǐng)域進行擴展。這些知識點的相互關(guān)聯(lián),將促使讀者開闊思路,融會貫通,領(lǐng)悟更多的學習方法,提升自身的學習能力。本書適合安全技術(shù)相關(guān)工作者、對逆向調(diào)試技術(shù)感興趣的人、對軟件保護感興趣的軟件開發(fā)人員、相關(guān)專業(yè)在校學生及關(guān)注個人信息安全、計算機安全技術(shù)并想了解技術(shù)內(nèi)幕的讀者閱讀。
段鋼,國內(nèi)信息安全領(lǐng)域具有廣泛影響力的安全網(wǎng)站看雪學院的創(chuàng)始人和運營管理者,長期致力于信息安全技術(shù)研究,對當前安全技術(shù)的發(fā)展有深入思考。參與和組織專業(yè)人士推出的十多部技術(shù)專著和相關(guān)書籍,有不少入選為大學信息技術(shù)專業(yè)的教輔材料,如《加密與解密》等,影響廣泛。在盛大和眾人網(wǎng)絡(luò)的多年工作經(jīng)歷,使得對安全防護有深刻的認識和理解。在2016年創(chuàng)建上海看雪科技有限公司,項目以看雪學院為基礎(chǔ),構(gòu)建一個提供B2B、B2C信息安全服務(wù)的綜合平臺。
基礎(chǔ)篇
第1章 基礎(chǔ)知識 2
1.1 什么是加密與解密 2
1.1.1 軟件的加密與解密 2
1.1.2 軟件逆向工程 2
1.1.3 逆向分析技術(shù) 3
1.2 文本字符 4
1.2.1 ASCII與Unicode字符集 4
1.2.2 字節(jié)存儲順序 6
1.3 Windows操作系統(tǒng) 6
1.3.1 Win32 API函數(shù) 6
1.3.2 WOW64 9
1.3.3 Windows消息機制 9
1.3.4 虛擬內(nèi)存 11
調(diào)試篇
第2章 動態(tài)分析技術(shù) 14
2.1 OllyDbg調(diào)試器 14
2.1.1 OllyDbg的界面 14
2.1.2 OllyDbg的配置 15
2.1.3 基本操作 16
2.1.4 常用斷點 27
2.1.5 插件 35
2.1.6 Run trace 36
2.1.7 Hit trace 37
2.1.8 調(diào)試符號 37
2.1.9 加載程序 39
2.1.10 OllyDbg的常見問題 40
2.2 x64dbg調(diào)試器 42
2.3 MDebug調(diào)試器 44
2.3.1 MDebug的界面 44
2.3.2 表達式 45
2.3.3 調(diào)試 45
2.3.4 斷點 46
2.3.5 MDebug的其他功能 47
2.4 WinDbg調(diào)試器 47
2.4.1 WinDbg的安裝與配置 47
2.4.2 調(diào)試過程 51
2.4.3 斷點命令 51
2.4.4 棧窗口 53
2.4.5 內(nèi)存命令 55
2.4.6 腳本 56
2.4.7 調(diào)試功能擴展 58
2.4.8 小結(jié) 59
第3章 靜態(tài)分析技術(shù) 60
3.1 文件類型分析 60
3.2 反匯編引擎 61
3.2.1 OllyDbg的ODDisasm 61
3.2.2 BeaEngine 61
3.2.3 Udis86 61
3.2.4 Capstone 62
3.2.5 AsmJit 63
3.2.6 Keystone 64
3.2.7 小結(jié) 64
3.3 靜態(tài)反匯編 65
3.3.1 IDA Pro簡介 65
3.3.2 IDA的配置 66
3.3.3 IDA主窗口 68
3.3.4 交叉參考 69
3.3.5 參考重命名 70
3.3.6 標簽的用法 71
3.3.7 格式化指令操作數(shù) 71
3.3.8 函數(shù)的操作 72
3.3.9 代碼和數(shù)據(jù)轉(zhuǎn)換 72
3.3.10 字符串 73
3.3.11 數(shù)組 74
3.3.12 結(jié)構(gòu)體 75
3.3.13 枚舉類型 79
3.3.14 變量 80
3.3.15 FLIRT 81
3.3.16 IDC腳本 82
3.3.17 插件 86
3.3.18 IDA調(diào)試器 87
3.3.19 遠程調(diào)試 90
3.3.20 其他功能 93
3.3.21 小結(jié) 94
3.4 十六進制工具 94
3.5 靜態(tài)分析技術(shù)應(yīng)用實例 97
3.5.1 解密初步 97
3.5.2 逆向工程初步 99
解密篇
第4章 逆向分析技術(shù) 102
4.1 32位軟件逆向技術(shù) 102
4.1.1 啟動函數(shù) 102
4.1.2 函數(shù) 103
4.1.3 數(shù)據(jù)結(jié)構(gòu) 111
4.1.4 虛函數(shù) 115
4.1.5 控制語句 117
4.1.6 循環(huán)語句 124
4.1.7 數(shù)學運算符 125
4.1.8 文本字符串 128
4.1.9 指令修改技巧 130
4.2 64位軟件逆向技術(shù) 131
4.2.1 寄存器 131
4.2.2 函數(shù) 132
4.2.3 數(shù)據(jù)結(jié)構(gòu) 142
4.2.4 控制語句 145
4.2.5 循環(huán)語句 154
4.2.6 數(shù)學運算符 158
4.2.7 虛函數(shù) 169
4.2.8 小結(jié) 193
第5章 演示版保護技術(shù) 194
5.1 序列號保護方式 194
5.1.1 序列號保護機制 194
5.1.2 如何攻擊序列號保護機制 195
5.1.3 字符串比較形式 197
5.1.4 制作注冊機 198
5.2 警告窗口 203
5.3 時間限制 205
5.3.1 計時器 205
5.3.2 時間限制 205
5.3.3 拆解時間限制保護 206
5.4 菜單功能限制 207
5.4.1 相關(guān)函數(shù) 207
5.4.2 拆解菜單限制保護 208
5.5 KeyFile保護 208
5.5.1 相關(guān)API函數(shù) 208
5.5.2 拆解KeyFile保護 209
5.6 網(wǎng)絡(luò)驗證 213
5.6.1 相關(guān)函數(shù) 214
5.6.2 破解網(wǎng)絡(luò)驗證的一般思路 214
5.7 光盤檢測 219
5.7.1 相關(guān)函數(shù) 219
5.7.2 拆解光盤保護 220
5.8 只運行1個實例 221
5.8.1 實現(xiàn)方法 221
5.8.2 實例 222
5.9 常用斷點設(shè)置技巧 222
第6章 加密算法 223
6.1 單向散列算法 223
6.1.1 MD5算法 223
6.1.2 SHA算法 227
6.1.3 SM3密碼雜湊算法 231
6.1.4 小結(jié) 231
6.2 對稱加密算法 231
6.2.1 RC4流密碼 231
6.2.2 TEA算法 233
6.2.3 IDEA算法 236
6.2.4 BlowFish算法 243
6.2.5 AES算法 246
6.2.6 SM4分組密碼算法 259
6.2.7 小結(jié) 259
6.3 公開密鑰加密算法 259
6.3.1 RSA算法 260
6.3.2 ElGamal公鑰算法 264
6.3.3 DSA數(shù)字簽名算法 270
6.3.4 橢圓曲線密碼編碼學 272
6.3.5 SM2算法 279
6.4 其他算法 279
6.4.1 CRC32算法 279
6.4.2 Base64編碼 280
6.5 常見的加密庫接口及其識別 281
6.5.1 Miracl大數(shù)運算庫 281
6.5.2 FGInt 283
6.5.3 其他加密算法庫介紹 284
6.6 加密算法在軟件保護中的應(yīng)用 285
系統(tǒng)篇
第7章 Windows內(nèi)核基礎(chǔ) 290
7.1 內(nèi)核理論基礎(chǔ) 290
7.1.1 權(quán)限級別 290
7.1.2 內(nèi)存空間布局 291
7.1.3 Windows與內(nèi)核啟動過程 292
7.1.4 Windows R3與R0通信 294
7.1.5 內(nèi)核函數(shù) 296
7.1.6 內(nèi)核驅(qū)動模塊 297
7.2 內(nèi)核重要數(shù)據(jù)結(jié)構(gòu) 298
7.2.1 內(nèi)核對象 298
7.2.2 SSDT 300
7.2.3 TEB 302
7.2.4 PEB 304
7.3 內(nèi)核調(diào)試基礎(chǔ) 306
7.3.1 使用WinDbg搭建雙機調(diào)試環(huán)境 306
7.3.2 加載內(nèi)核驅(qū)動并設(shè)置符號表 308
7.3.3 SSDT與Shadow SSDT的查看 311
第8章 Windows下的異常處理 313
8.1 異常處理的基本概念 313
8.1.1 異常列表 313
8.1.2 異常處理的基本過程 314
8.2 SEH的概念及基本知識 319
8.2.1 SEH的相關(guān)數(shù)據(jù)結(jié)構(gòu) 319
8.2.2 SEH處理程序的安裝和卸載 320
8.2.3 SEH實例跟蹤 321
8.3 SEH異常處理程序原理及設(shè)計 325
8.3.1 異常分發(fā)的詳細過程 325
8.3.2 線程異常處理 330
8.3.3 異常處理的棧展開 336
8.3.4 MSC編譯器對線程異常處理的增強 342
8.3.5 頂層異常處理 349
8.3.6 異常處理程序的安全性 357
8.4 向量化異常處理 361
8.4.1 向量化異常處理的使用 361
8.4.2 VEH與SEH的異同 362
8.4.3 向量化異常處理的新內(nèi)容 363
8.5 x64平臺上的異常處理 363
8.5.1 原生x64程序的異常分發(fā) 364
8.5.2 WOW64下的異常分發(fā) 366
8.6 異常處理程序設(shè)計中的注意事項 367
8.7 異常處理的實際應(yīng)用 368
8.7.1 使用SEH對用戶輸入進行驗證 368
8.7.2 SEH在加密與解密中的應(yīng)用 369
8.7.3 用VEH實現(xiàn)API Hook 371
8.8 本章小結(jié) 371
第9章 Win32調(diào)試API 372
9.1 調(diào)試相關(guān)函數(shù)簡要說明 372
9.2 調(diào)試事件 375
9.3 創(chuàng)建并跟蹤進程 377
9.4 調(diào)試循環(huán)體 378
9.5 處理調(diào)試事件 379
9.6 線程環(huán)境 380
9.7 將代碼注入進程 382
第10章 VT技術(shù) 384
10.1 硬件虛擬化的基本概念 384
10.1.1 概述 384
10.1.2 相關(guān)結(jié)構(gòu)和匯編指令 385
10.1.3 EPT機制 388
10.2 VT技術(shù)的應(yīng)用 389
10.2.1 編譯運行ShadowWalker 389
10.2.2 分析Hypervisor 390
10.2.3 檢測VT支持情況 392
10.2.4 VMCS的配置 393
10.2.5 EPT的配置 396
10.2.6 開啟VT 399
10.2.7 內(nèi)存隱藏的實現(xiàn) 399
10.3 VT調(diào)試方法 401
第11章 PE文件格式 404
11.1 PE的基本概念 405
11.1.1 基地址 405
11.1.2 虛擬地址 406
11.1.3 相對虛擬地址 406
11.1.4 文件偏移地址 407
11.2 MS-DOS頭部 407
11.3 PE文件頭 408
11.3.1 Signature字段 408
11.3.2 IMAGE_FILE_HEADER結(jié)構(gòu) 409
11.3.3 IMAGE_OPTIONAL_HEADER結(jié)構(gòu) 410
11.4 區(qū)塊 415
11.4.1 區(qū)塊表 415
11.4.2 常見區(qū)塊與區(qū)塊合并 417
11.4.3 區(qū)塊的對齊值 419
11.4.4 文件偏移與虛擬地址的轉(zhuǎn)換 419
11.5 輸入表 421
11.5.1 輸入函數(shù)的調(diào)用 421
11.5.2 輸入表的結(jié)構(gòu) 422
11.5.3 輸入地址表 424
11.5.4 輸入表實例分析 424
11.6 綁定輸入 428
11.7 輸出表 429
11.7.1 輸出表的結(jié)構(gòu) 430
11.7.2 輸出表實例分析 431
11.8 基址重定位 432
11.8.1 基址重定位的概念 432
11.8.2 基址重定位表的結(jié)構(gòu) 433
11.8.3 基址重定位表實例分析 434
11.9 資源 435
11.9.1 資源結(jié)構(gòu) 435
11.9.2 資源結(jié)構(gòu)實例分析 438
11.9.3 資源編輯工具 440
11.10 TLS初始化 440
11.11 調(diào)試目錄 441
11.12 延遲載入數(shù)據(jù) 441
11.13 程序異常數(shù)據(jù) 442
11.14 .NET頭部 442
11.15 編寫PE分析工具 443
11.15.1 檢查文件格式 443
11.15.2 讀取FileHeader和OptionalHeader的內(nèi)容 444
11.15.3 得到數(shù)據(jù)目錄表信息 445
11.15.4 得到區(qū)塊表信息 446
11.15.5 得到輸出表信息 447
11.15.6 得到輸入表信息 448
第12章 注入技術(shù) 450
12.1 DLL注入方法 450
12.1.1 通過干預輸入表處理過程加載目標DLL 450
12.1.2 改變程序運行流程使其主動加載目標DLL 466
12.1.3 利用系統(tǒng)機制加載DLL 484
12.2 DLL注入的應(yīng)用 491
12.3 DLL注入的防范 491
12.3.1 驅(qū)動層防范 491
12.3.2 應(yīng)用層防范 493
第13章 Hook技術(shù) 497
13.1 Hook概述 497
13.1.1 IAT Hook篡改MessageBox消息 497
13.1.2 Inline Hook篡改指定MessageBox消息 499
13.2 Hook的分類 500
13.2.1 Address Hook 501
13.2.2 Inline Hook 511
13.2.3 基于異常處理的Hook 513
13.2.4 不是Hook的Hook 514
13.3 Hook位置的挑選 515
13.4 Hook的典型過程 519
13.4.1 Address Hook的實施過程 519
13.4.2 Inline Hook的實施過程 526
13.4.3 基于異常處理的Hook實施過程 529
13.4.4 二次Hook的注意事項 532
13.4.5 通用Hook引擎的實現(xiàn) 533
13.5 Detour函數(shù)的典型用法 533
13.6 Hook中的注意事項 536
13.7 Hook在x64平臺上的新問題 541
13.8 Hook技術(shù)的應(yīng)用 543
13.9 Hook的檢測、恢復與對抗 544
13.9.1 Hook的檢測與恢復 544
13.9.2 Hook的對抗 545
13.10 本章小結(jié) 546
漏洞篇
第14章 漏洞分析技術(shù) 548
14.1 軟件漏洞原理 548
14.1.1 緩沖區(qū)溢出漏洞 548
14.1.2 整型溢出漏洞 553
14.1.3 UAF漏洞 555
14.2 Shellcode 555
14.2.1 Shellcode的結(jié)構(gòu) 556
14.2.2 Shellcode通用技術(shù) 559
14.2.3 實戰(zhàn)Shellcode編寫 560
14.3 漏洞利用 566
14.3.1 漏洞利用基本技術(shù) 567
14.3.2 漏洞利用高級技術(shù) 570
14.4 漏洞樣本 572
14.5 樣本分析 573
14.5.1 準備工作 573
14.5.2 靜態(tài)分析 574
14.5.3 動態(tài)調(diào)試 576
14.5.4 追根溯源 581
14.5.5 小結(jié) 585
脫殼篇
第15章 專用加密軟件 588
15.1 認識殼 588
15.1.1 殼的概念 588
15.1.2 壓縮引擎 589
15.2 壓縮殼 589
15.2.1 UPX 589
15.2.2 ASPack 590
15.3 加密殼 590
15.3.1 ASProtect 590
15.3.2 Armadillo 590
15.3.3 EXECryptor 591
15.3.4 Themida 591
15.4 虛擬機保護軟件 592
15.4.1 虛擬機介紹 592
15.4.2 VMProtect簡介 592
第16章 脫殼技術(shù) 594
16.1 基礎(chǔ)知識 594
16.1.1 殼的加載過程 594
16.1.2 脫殼機 595
16.1.3 手動脫殼 596
16.2 尋找OEP 596
16.2.1 根據(jù)跨段指令尋找OEP 596
16.2.2 用內(nèi)存訪問斷點尋找OEP 600
16.2.3 根據(jù)棧平衡原理尋找OEP 601
16.2.4 根據(jù)編譯語言特點尋找OEP 602
16.3 抓取內(nèi)存映像 603
16.3.1 Dump原理 603
16.3.2 反Dump技術(shù) 604
16.4 重建輸入表 606
16.4.1 輸入表重建的原理 606
16.4.2 確定IAT的地址和大小 607
16.4.3 根據(jù)IAT重建輸入表 608
16.4.4 用Import REC重建輸入表 611
16.4.5 輸入表加密概括 614
16.5 DLL文件脫殼 615
16.5.1 尋找OEP 615
16.5.2 Dump映像文件 617
16.5.3 重建DLL的輸入表 618
16.5.4 構(gòu)造重定位表 619
16.6 附加數(shù)據(jù) 621
16.7 PE文件的優(yōu)化 623
16.8 壓縮殼 626
16.8.1 UPX外殼 626
16.8.2 ASPack外殼 629
16.9 加密殼 633
16.10 靜態(tài)脫殼 637
16.10.1 外殼Loader分析 637
16.10.2 編寫靜態(tài)脫殼器 641
保護篇
第17章 軟件保護技術(shù) 644
17.1 防范算法求逆 644
17.1.1 基本概念 644
17.1.2 堡壘戰(zhàn)術(shù) 645
17.1.3 游擊戰(zhàn)術(shù) 646
17.2 抵御靜態(tài)分析 647
17.2.1 花指令 647
17.2.2 SMC技術(shù)實現(xiàn) 649
17.2.3 信息隱藏 653
17.2.4 簡單的多態(tài)變形技術(shù) 654
17.3 文件完整性檢驗 655
17.3.1 磁盤文件校驗的實現(xiàn) 655
17.3.2 校驗和 657
17.3.3 內(nèi)存映像校驗 657
17.4 代碼與數(shù)據(jù)結(jié)合 659
17.4.1 準備工作 660
17.4.2 加密算法的選用 661
17.4.3 手動加密代碼 661
17.4.4 使 .text區(qū)塊可寫 662
17.5 關(guān)于軟件保護的若干忠告 663
第18章 反跟蹤技術(shù) 665
18.1 由BeingDebugged引發(fā)的蝴蝶效應(yīng) 665
18.1.1 BeingDebugged 665
18.1.2 NtGlobalFlag 669
18.1.3 Heap Magic 671
18.1.4 從源頭消滅BeingDebugged 676
18.2 回歸Native:用戶態(tài)的夢魘 676
18.2.1 CheckRemoteDebuggerPresent 677
18.2.2 ProcessDebugPort 677
18.2.3 ThreadHideFromDebugger 680
18.2.4 DebugObject 682
18.2.5 SystemKernelDebuggerInformation 686
18.2.6 Native API 688
18.2.7 Hook和AntiHook 693
18.3 真正的奧秘:小技巧一覽 696
18.3.1 SoftICE檢測方法 696
18.3.2 OllyDbg檢測方法 698
18.3.3 調(diào)試器漏洞 700
18.3.4 防止調(diào)試器附加 701
18.3.5 父進程檢測 703
18.3.6 時間差 703
18.3.7 通過Trap Flag檢測 704
18.3.8 雙進程保護 704
第19章 外殼編寫基礎(chǔ) 705
19.1 外殼的結(jié)構(gòu) 705
19.2 加殼主程序 706
19.2.1 判斷文件是否為PE格式 706
19.2.2 文件基本數(shù)據(jù)讀入 706
19.2.3 附加數(shù)據(jù)的讀取 708
19.2.4 輸入表的處理 708
19.2.5 重定位表的處理 711
19.2.6 文件的壓縮 713
19.2.7 資源數(shù)據(jù)的處理 716
19.2.8 區(qū)塊的融合 720
19.3 用匯編寫外殼部分 721
19.3.1 外殼的加載過程 721
19.3.2 自建輸入表 722
19.3.3 外殼引導段 723
19.3.4 外殼第2部分 726
19.3.5 將外殼部分添加至原程序 731
19.4 用C++編寫外殼部分 734
第20章 虛擬機的設(shè)計 739
20.1 虛擬機保護技術(shù)原理 739
20.1.1 反匯編引擎 739
20.1.2 指令分類 739
20.2 啟動框架和調(diào)用約定 740
20.2.1 調(diào)度器 740
20.2.2 虛擬環(huán)境 741
20.2.3 平衡棧vBegin和vCheckESP 742
20.3 Handler的設(shè)計 743
20.3.1 輔助Handler 743
20.3.2 普通Handler和指令拆解 744
20.3.3 標志位問題 745
20.3.4 相同作用的指令 745
20.3.5 轉(zhuǎn)移指令 746
20.3.6 轉(zhuǎn)移跳轉(zhuǎn)指令的另一種實現(xiàn) 747
20.3.7 call指令 748
20.3.8 retn指令 748
20.3.9 不可模擬指令 749
20.4 托管代碼的異常處理 749
20.4.1 VC++的異常處理 749
20.4.2 Delphi的異常處理 754
20.5 本章小結(jié) 757
第21章 VMProtect逆向和還原淺析 758
21.1 VMProtect逆向分析 758
21.1.1 VMProtect虛擬執(zhí)行引擎的全景圖 758
21.1.2 VMProtect虛擬引擎的基本架構(gòu) 763
21.1.3 指令分類 763
21.2 VMProtect的還原 765
21.2.1 虛擬執(zhí)行系統(tǒng) 766
21.2.2 生成完整的字節(jié)碼流程圖 767
21.2.3 給Handler命名并添加語義動作 774
21.2.4 將字節(jié)碼的低級描述轉(zhuǎn)換為中級描述 775
21.2.5 清除無用的字節(jié)碼 776
21.2.6 用真值表化簡邏輯指令 776
21.2.7 從特征中建立部分寄存器映射信息 779
21.2.8 其他無法確定的寄存器的圖著色算法 785
21.2.9 使用DAG匹配生成指令 788
21.2.10 其他問題 791
軟件重構(gòu)篇
第22章 補丁技術(shù) 794
22.1 文件補丁 794
22.2 內(nèi)存補丁 795
22.2.1 跨進程內(nèi)存存取機制 795
22.2.2 Debug API機制 797
22.2.3 利用調(diào)試寄存器機制 800
22.2.4 利用DLL注入技術(shù) 803
22.2.5 利用Hook技術(shù) 807
22.2.6 利用VT技術(shù) 810
22.3 SMC補丁技術(shù) 813
22.3.1 單層SMC補丁技術(shù) 813
22.3.2 多層SMC補丁技術(shù) 814
22.4 補丁工具 816
第23章 代碼的二次開發(fā) 818
23.1 數(shù)據(jù)對齊 818
23.2 增加空間 818
23.2.1 區(qū)塊間隙 818
23.2.2 手動構(gòu)造區(qū)塊 819
23.2.3 工具輔助構(gòu)造區(qū)塊 820
23.3 獲得函數(shù)的調(diào)用信息 820
23.3.1 增加輸入函數(shù) 820
23.3.2 顯式鏈接調(diào)用DLL 821
23.4 代碼的重定位 822
23.4.1 修復重定位表 822
23.4.2 代碼的自定位技術(shù) 824
23.5 增加輸出函數(shù) 825
23.6 消息循環(huán) 826
23.6.1 WndProc函數(shù) 826
23.6.2 尋找消息循環(huán) 827
23.6.3 WndProc匯編形式 828
23.7 菜單擴展 829
23.7.1 擴充WndProc 829
23.7.2 擴充Exit菜單的功能 830
23.7.3 擴充Open菜單的功能 830
23.8 DLL擴展 833
23.8.1 擴展接口 833
23.8.2 擴展消息循環(huán) 834
語言和平臺篇
第24章 .NET平臺加解密 838
24.1 .NET概述 838
24.1.1 什么是 .NET 838
24.1.2 基本概念 839
24.1.3 第1個 .NET程序 840
24.2 MSIL與元數(shù)據(jù) 841
24.2.1 PE結(jié)構(gòu)的擴展 841
24.2.2 .NET下的匯編MSIL 847
24.2.3 MSIL與元數(shù)據(jù)的結(jié)合 849
24.3 代碼分析與修改技術(shù) 851
24.3.1 靜態(tài)分析 851
24.3.2 動態(tài)調(diào)試 853
24.3.3 代碼修改 855
24.4 .NET代碼保護技術(shù)及其逆向 857
24.4.1 強名稱 857
24.4.2 名稱混淆 859
24.4.3 流程混淆 863
24.4.4 壓縮 865
24.4.5 加密 869
24.4.6 其他保護手段 875
24.5 本章小結(jié) 876
取證篇
第25章 數(shù)據(jù)取證技術(shù) 878
25.1 硬盤數(shù)據(jù)的獲取和固定 878
25.1.1 硬盤數(shù)據(jù)的獲取 878
25.1.2 電子數(shù)據(jù)的固定 882
25.2 硬盤的分區(qū)和數(shù)據(jù)恢復 882
25.2.1 分區(qū)的解析 884
25.2.2 基于文件系統(tǒng)的數(shù)據(jù)恢復原理 886
25.3 內(nèi)存分析 890
25.3.1 內(nèi)存鏡像的獲取 891
25.3.2 內(nèi)存鏡像的分析 894
25.4 動態(tài)仿真技術(shù) 897
25.4.1 仿真專用硬件 897
25.4.2 軟件仿真 898
25.5 注冊表 900
25.5.1 Hive文件 900
25.5.2 注冊表中的時間 901
25.5.3 USB移動存儲設(shè)備 902
25.6 文件格式 903
25.6.1 文件修復和特征碼 903
25.6.2 基于文件的數(shù)據(jù)恢復技術(shù) 904
25.6.3 數(shù)據(jù)隱藏的分析 906
術(shù)語表 909
參考文獻 911
你還可能感興趣
我要評論
|