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