本書首先介紹惡意代碼的原理和實(shí)現(xiàn)技術(shù),并詳細(xì)介紹了引導(dǎo)型惡意代碼、計(jì)算機(jī)病毒、特洛伊木馬、蠕蟲、Rootkit、智能手機(jī)惡意代碼等,然后結(jié)合實(shí)例進(jìn)行深入分析,接著從惡意代碼生存對(duì)抗入手,詳細(xì)介紹了特征碼定位與免殺、加密與加殼、代碼混淆、反動(dòng)態(tài)分析等反檢測(cè)技術(shù),從實(shí)際應(yīng)用的角度分析了它們的優(yōu)勢(shì)與不足,最后介紹了惡意代碼防范技術(shù),包括惡意代碼檢測(cè)技術(shù)、惡意代碼清除、惡意代碼預(yù)防和數(shù)據(jù)備份與數(shù)據(jù)恢復(fù)等。本書結(jié)構(gòu)合理、概念清晰、內(nèi)容翔實(shí),結(jié)合了豐富的實(shí)例和代碼剖析技術(shù)的本質(zhì)。書中每章末都附有思考題,以方便講授和開展自學(xué)。本書可作為高等學(xué)校網(wǎng)絡(luò)空間安全、信息安全等專業(yè)相關(guān)課程的教材,也可作為計(jì)算機(jī)科學(xué)與技術(shù)、網(wǎng)絡(luò)工程等專業(yè)相關(guān)課程的教學(xué)參考書,還可作為信息技術(shù)人員、網(wǎng)絡(luò)安全技術(shù)人員的參考用書。
奚琪,信息工程大學(xué)網(wǎng)絡(luò)空間安全學(xué)院副教授,軍隊(duì)級(jí)優(yōu)質(zhì)課程"網(wǎng)絡(luò)安全技術(shù)”核心成員。主持或參與國(guó)家863、國(guó)防重點(diǎn)科研項(xiàng)目30余項(xiàng)。曾出版《網(wǎng)絡(luò)攻擊與防御技術(shù)》《網(wǎng)絡(luò)安全實(shí)驗(yàn)教程》等書。
第1章 惡意代碼概述 1
1.1 惡意代碼的概念 1
1.1.1 惡意代碼的定義 1
1.1.2 惡意代碼的類型 2
1.1.3 惡意代碼攻擊模型 4
1.2 惡意代碼的發(fā)展歷程 5
1.2.1 產(chǎn)生階段 5
1.2.2 初級(jí)發(fā)展階段 6
1.2.3 互聯(lián)網(wǎng)爆發(fā)階段 6
1.2.4 專業(yè)綜合階段 7
1.3 惡意代碼的命名 8
1.3.1 個(gè)性化命名方法 8
1.3.2 三元組命名方法 9
1.4 惡意代碼的傳播途徑 10
1.5 惡意代碼的發(fā)展趨勢(shì) 10
1.6 思考題 10
第2章 引導(dǎo)型惡意代碼 11
2.1 Windows引導(dǎo)過程 11
2.1.1 固件BIOS引導(dǎo)過程 11
2.1.2 UEFI的引導(dǎo)過程 14
2.1.3 Windows操作系統(tǒng)引導(dǎo)過程 17
2.2 引導(dǎo)型病毒 19
2.2.1 引導(dǎo)型病毒的原理 20
2.2.2 引導(dǎo)型病毒的實(shí)現(xiàn) 20
2.3 引導(dǎo)型Bootkit 22
2.3.1 基于MBR的Bootkit 22
2.3.2 基于UEFI的Bootkit 24
2.4 思考題 26
第3章 計(jì)算機(jī)病毒 27
3.1 計(jì)算機(jī)病毒概述 27
3.1.1 計(jì)算機(jī)病毒的基本概念 27
3.1.2 計(jì)算機(jī)病毒的原理 28
3.2 Win32病毒 32
3.2.1 PE文件的格式 32
3.2.2 Win32病毒關(guān)鍵技術(shù) 37
3.3 宏病毒 41
3.3.1 宏病毒概述 41
3.3.2 宏病毒的原理 42
3.3.3 宏病毒的防范 45
3.4 腳本病毒 46
3.4.1 Windows腳本 46
3.4.2 PowerShell病毒原理 47
3.4.3 腳本病毒的防范 49
3.5 思考題 49
第4章 特洛伊木馬 51
4.1 木馬概述 51
4.1.1 木馬的基本概念 51
4.1.2 木馬的組成與通信架構(gòu) 55
4.1.3 木馬的工作流程 57
4.1.4 木馬的植入方法 58
4.2 木馬的啟動(dòng)技術(shù) 60
4.2.1 利用系統(tǒng)配置啟動(dòng) 60
4.2.2 利用注冊(cè)表啟動(dòng) 61
4.2.3 利用劫持技術(shù)啟動(dòng) 62
4.2.4 利用計(jì)劃任務(wù)啟動(dòng) 65
4.2.5 其他方式 66
4.3 木馬的隱藏技術(shù) 66
4.3.1 文件隱藏 66
4.3.2 進(jìn)程隱藏 69
4.3.3 通信隱藏 70
4.4 思考題 73
第5章 蠕蟲 74
5.1 蠕蟲概述 74
5.1.1 蠕蟲的定義 74
5.1.2 蠕蟲的分類 75
5.1.3 蠕蟲的行為特征 76
5.2 蠕蟲的工作原理 77
5.2.1 蠕蟲的組成與結(jié)構(gòu) 77
5.2.2 蠕蟲的工作流程 78
5.3 典型蠕蟲分析 79
5.3.1 “震網(wǎng)”蠕蟲簡(jiǎn)介 79
5.3.2 “震網(wǎng)”蠕蟲的工作原理 79
5.4 蠕蟲的防范 82
5.5 思考題 83
第6章 Rootkit 84
6.1 Rootkit概述 84
6.1.1 Rootkit的定義 84
6.1.2 Rootkit的特性 84
6.1.3 Rootkit的分類 85
6.2 Rootkit技術(shù)基礎(chǔ) 85
6.2.1 Windows系統(tǒng)的分層結(jié)構(gòu) 85
6.2.2 用戶層到內(nèi)核層的轉(zhuǎn)換 87
6.3 應(yīng)用層Rootkit 88
6.3.1 應(yīng)用層Hooking技術(shù) 88
6.3.2 注入技術(shù) 90
6.3.3 應(yīng)用層Hooking實(shí)例 92
6.4 內(nèi)核層Rootkit 93
6.4.1 內(nèi)核層Hooking 94
6.4.2 DKOM技術(shù) 95
6.4.3 內(nèi)核層Hooking實(shí)例 97
6.5 Rootkit的防范與檢測(cè) 101
6.5.1 Rootkit的防范 101
6.5.2 Rootkit的檢測(cè) 102
6.6 思考題 103
第7章 智能手機(jī)惡意代碼 104
7.1 智能手機(jī)惡意代碼概述 104
7.1.1 智能手機(jī)操作系統(tǒng) 104
7.1.2 智能手機(jī)惡意代碼簡(jiǎn)述 105
7.1.3 智能手機(jī)惡意代碼的傳播途徑 106
7.2 Android惡意代碼 107
7.2.1 Android概述 107
7.2.2 Android進(jìn)程沙箱逃逸技術(shù) 107
7.2.3 Android應(yīng)用程序簽名機(jī)制繞過技術(shù) 107
7.2.4 Android惡意代碼實(shí)例 108
7.3 iOS惡意代碼 110
7.3.1 iOS概述 110
7.3.2 iOS代碼簽名繞過技術(shù) 110
7.3.3 iOS安全啟動(dòng)鏈劫持技術(shù) 111
7.3.4 iOS沙盒逃逸技術(shù) 112
7.3.5 iOS后臺(tái)持久化技術(shù) 112
7.3.6 iOS內(nèi)核地址空間布局隨機(jī)化突破技術(shù) 113
7.3.7 iOS惡意代碼實(shí)例 113
7.3.8 iOS應(yīng)用程序插件開發(fā) 115
7.4 智能手機(jī)惡意代碼防范 117
7.4.1 防范策略 117
7.4.2 防范工具 118
7.5 思考題 120
第8章 特征碼定位與免殺 121
8.1 惡意代碼的特征碼 121
8.1.1 特征碼的基本概念 121
8.1.2 特征碼的類型 122
8.2 特征碼定位原理 122
8.2.1 分塊填充定位法 122
8.2.2 分塊保留定位法 124
8.2.3 特征定位工具應(yīng)用 127
8.3 惡意代碼免殺技術(shù) 130
8.3.1 PE文件頭免殺方法 130
8.3.2 導(dǎo)入表免殺方法 131
8.3.3 代碼段免殺方法 133
8.3.4 數(shù)據(jù)段免殺方法 137
8.3.5 利用編譯器轉(zhuǎn)換的免殺方法 138
8.4 思考題 138
第9章 加密技術(shù)與加殼技術(shù) 139
9.1 加密技術(shù) 139
9.1.1 加密技術(shù)概述 139
9.1.2 加密算法簡(jiǎn)介 139
9.1.3 軟件的加密 143
9.1.4 加密策略 146
9.2 加殼技術(shù) 147
9.2.1 軟件殼概述 147
9.2.2 軟件殼的分類 148
9.2.3 加殼原理與實(shí)現(xiàn) 151
9.3 虛擬機(jī)保護(hù)技術(shù) 156
9.3.1 虛擬機(jī)保護(hù)技術(shù)概述 156
9.3.2 虛擬機(jī)保護(hù)技術(shù)的實(shí)現(xiàn) 157
9.4 思考題 159
第10章 代碼混淆技術(shù) 160
10.1 代碼混淆技術(shù)概述 160
10.1.1 代碼混淆技術(shù)的定義 160
10.1.2 代碼混淆技術(shù)的功能 160
10.1.3 代碼混淆技術(shù)的優(yōu)缺點(diǎn) 161
10.1.4 代碼混淆技術(shù)的分類 161
10.2 語(yǔ)法層混淆 162
10.2.1 填充和壓縮 162
10.2.2 標(biāo)志符替代 162
10.2.3 編碼混淆 163
10.2.4 字符串混淆 163
10.2.5 函數(shù)參數(shù)混淆 163
10.2.6 語(yǔ)法層混淆的缺陷 164
10.3 控制流混淆 165
10.3.1 控制流壓扁法 165
10.3.2 分支引入法 167
10.3.3 利用異常處理隱藏條件分支 169
10.4 數(shù)據(jù)混淆 171
10.4.1 整型混淆 171
10.4.2 布爾混淆 172
10.4.3 常量混淆 173
10.4.4 數(shù)組混淆 173
10.4.5 結(jié)構(gòu)混淆 174
10.5 思考題 175
第11章 反動(dòng)態(tài)分析技術(shù) 176
11.1 反動(dòng)態(tài)分析技術(shù)概述 176
11.1.1 反動(dòng)態(tài)分析技術(shù)的分類 176
11.1.2 反動(dòng)態(tài)分析技術(shù)的依賴性 177
11.2 反調(diào)試技術(shù) 177
11.2.1 探測(cè)調(diào)試器 177
11.2.2 識(shí)別調(diào)試器行為 184
11.2.3 干擾調(diào)試器 189
11.3 虛擬機(jī)檢測(cè)技術(shù) 193
11.3.1 檢測(cè)虛擬機(jī)痕跡 194
11.3.2 從內(nèi)存中檢測(cè)虛擬機(jī) 195
11.3.3 檢測(cè)通信I/O端口 198
11.4 思考題 199
第12章 惡意代碼防范技術(shù) 200
12.1 惡意代碼防范技術(shù)概述 200
12.1.1 惡意代碼防范技術(shù)的發(fā)展 200
12.1.2 惡意代碼的防范思路 200
12.2 惡意代碼檢測(cè)技術(shù) 201
12.2.1 惡意代碼檢測(cè)技術(shù)概述 201
12.2.2 特征碼檢測(cè)技術(shù) 205
12.2.3 動(dòng)態(tài)檢測(cè)技術(shù) 210
12.2.4 其他檢測(cè)技術(shù) 212
12.3 惡意代碼清除 214
12.3.1 清除惡意代碼的一般原則 214
12.3.2 清除惡意代碼的原理 215
12.3.3 清除惡意代碼的方法 216
12.4 惡意代碼預(yù)防 217
12.4.1 惡意代碼查殺軟件 217
12.4.2 系統(tǒng)監(jiān)控技術(shù) 219
12.4.3 系統(tǒng)免疫技術(shù) 219
12.4.4 系統(tǒng)加固技術(shù) 221
12.5 數(shù)據(jù)備份與數(shù)據(jù)恢復(fù) 221
12.5.1 數(shù)據(jù)備份 222
12.5.2 數(shù)據(jù)恢復(fù) 223
12.6 思考題 225
參考文獻(xiàn) 226