軟件安全實踐
彭國軍、傅建明、趙磊、陳澤茂
買這商品的人也買了...
-
$352深入理解 Android 網絡編程-技術詳解與最佳實踐
-
$454Android 深度探索(捲 2)-系統應用源代碼分析與 ROM 定製(附光盤)
-
$680$537 -
$454Android 安全攻防權威指南
-
$520$442 -
$281網絡設備配置與調試項目實訓(第4版)
-
$690$538 -
$607Spring Boot + Vue 開發實戰
-
$534$507 -
$780$702 -
$620$484 -
$250$198 -
$880$792 -
$520$410 -
$580$458 -
$880$695 -
$354$336 -
$479$455 -
$860$679 -
$390$371 -
$594$564 -
$539$512 -
$594$564 -
$403惡意代碼分析實踐
-
$356DeepSeek 實用操作指南 : 入門、搜索、答疑、寫作
商品描述
"本書共25章,覆蓋了軟件安全基礎、惡意代碼機理分析、惡意代碼樣本分析與檢測、軟件漏洞分析,以及軟件安全智能化分析5個領域。 軟件安全基礎部分的相關實驗具體涉及磁盤結構與數據恢復、程序鏈接與執行過程分析、PE及ELF可執行文件結構剖析,旨在加強讀者的軟件安全基礎,這對於讀者後續理解惡意代碼和軟件漏洞的機理、分析與防護技術具有重要作用。 惡意代碼機理分析部分具體包括Windows PE病毒、宏病毒與腳本病毒、網絡木馬機理分析、網絡蠕蟲、勒索病毒分析等,旨在加強讀者對典型惡意代碼機理的理解。 惡意代碼樣本分析與檢測部分具體包括軟件加殼與脫殼、樣本靜態分析、樣本動態分析、樣本溯源分析、樣本特徵檢測引擎(ClamAV)、樣本行為在線分析等,旨在加強讀者對惡意代碼樣本的處理、分析與檢測方法的理解,提升讀者的惡意代碼分析與檢測能力。 軟件漏洞分析部分具體包括漏洞測試框架、棧溢出漏洞、堆溢出漏洞、格式化字符串/整型溢出漏洞、IoT漏洞、軟件漏洞防禦、GS/DEP與ALSR繞過等,旨在加強讀者對軟件漏洞測試框架、漏洞機理、挖掘與防護機制的理解,提升讀者的漏洞攻防實踐能力。 軟件安全智能化分析部分具體包括機器學習與惡意代碼檢測、機器學習與惡意代碼家族聚類,以及Fuzzing與漏洞挖掘等,旨在幫助讀者掌握智能化分析的基本方法,並將這些方法用於惡意代碼檢測與軟件漏洞分析挖掘。 本書可作為高等院校軟件安全、惡意代碼、軟件漏洞及相關課程的配套實驗教材,也可以作為軟件安全方向的實訓教材。 "
作者簡介
彭國軍,武漢大學國家網絡安全學院教授,國家級青年人才,國家級一流本科課程負責人,研究方向為軟件與系統安全。榮獲國家級教學成果獎一等獎、湖北省科技進步獎二等獎、寶鋼優秀教師獎等獎項。
目錄大綱
目錄
第一部分軟件安全基礎
第1章磁盤格式與數據恢復2
1.1實驗概述2
1.2實驗預備知識與基礎2
1.2.1磁盤編輯工具與基本用法2
1.2.2MBR與GPT磁盤分區格式2
1.2.3FAT32與NTFS文件系統4
1.2.4數據刪除與恢復技術8
1.3磁盤編輯工具的基本使用8
1.3.1實驗目的8
1.3.2實驗內容及實驗環境9
1.3.3實驗步驟9
1.4MBR磁盤主引導區分析11
1.4.1實驗目的11
1.4.2實驗內容及實驗環境11
1.4.3實驗步驟11
1.5GPT分區格式分析15
1.5.1實驗目的15
1.5.2實驗內容及實驗環境15
1.5.3實驗步驟15
1.6FAT32文件系統格式分析18
1.6.1實驗目的18
1.6.2實驗內容及實驗環境18
1.6.3實驗步驟19
1.7NTFS文件系統格式分析22
1.7.1實驗目的22
1.7.2實驗內容及實驗環境22
1.7.3實驗步驟22
1.8數據刪除與恢復28
1.8.1實驗目的28
1.8.2實驗內容及實驗環境28
1.8.3實驗步驟28
1.9本章小結33
1.10問題討論與課後提升33
1.10.1問題討論33
1.10.2課後提升33
第2章程序鏈接和執行34
2.1實驗概述34
2.2實驗預備知識與基礎34
2.3程序的靜態鏈接36
2.3.1實驗目的36
2.3.2實驗內容及實驗環境36
2.3.3實驗步驟36
2.4進一步控製程序的鏈接39
2.4.1實驗目的40
2.4.2實驗內容及實驗環境40
2.4.3實驗步驟40
2.5程序的裝載與啟動流程43
2.5.1實驗目的43
2.5.2實驗內容及實驗環境43
2.5.3實驗步驟43
2.6本章小結46
2.7問題討論與課後提升46
2.7.1問題討論46
2.7.2課後提升46
第3章PE文件結構分析48
3.1實驗概述48
3.2實驗預備知識與基礎48
3.2.1PE查看、編輯與調試工具介紹48
3.2.2函數引入機制49
3.2.3函數引出機制50
3.2.4資源節機制51
3.2.5重定位機制52
3.3PE查看、編輯與調試工具的用法54
3.3.1實驗目的54
3.3.2實驗內容及實驗環境54
3.3.3實驗步驟 54
3.4函數的引入/引出機制分析與修改59
3.4.1實驗目的59
3.4.2實驗內容及實驗環境59
3.4.3實驗步驟59
3.5資源節資源操作64
3.5.1實驗目的64
3.5.2實驗內容及實驗環境64
3.5.3實驗步驟64
3.6手工重定位66
3.6.1實驗目的66
3.6.2實驗內容及實驗環境66
3.6.3實驗步驟67
3.7PE文件縮減68
3.7.1實驗目的68
3.7.2實驗內容及實驗環境68
3.7.3實驗步驟68
3.8本章小結71
3.9問題討論與課後提升71
3.9.1問題討論71
3.9.2課後提升72
第4章ELF文件結構分析73
4.1實驗概述73
4.2實驗預備知識與基礎73
4.2.1ELF分析工具介紹73
4.2.2ELF文件格式74
4.2.3ELF中的指令與數據77
4.2.4函數引入與引出機制78
4.2.5延遲綁定機制80
4.2.6程序初始化過程81
4.3ELF查看、編輯與調試工具的用法83
4.3.1實驗目的83
4.3.2實驗內容及實驗環境83
4.3.3實驗步驟83
4.4函數引入引出機制的分析與修改87
4.4.1實驗目的87
4.4.2實驗內容及實驗環境87
4.4.3實驗步驟87
4.5延遲綁定機制的分析與修改93
4.5.1實驗目的93
4.5.2實驗內容及實驗環境93
4.5.3實驗步驟93
4.6ELF初始化過程的分析與修改97
4.6.1實驗目的97
4.6.2實驗內容及實驗環境97
4.6.3實驗步驟98
4.7本章小結101
4.8問題討論與課後提升101
4.8.1問題討論101
4.8.2課後提升101
第二部分惡意代碼機理分析
第5章PE病毒104
5.1實驗概述104
5.2實驗預備知識與基礎105
5.2.1反匯編和反編譯105
5.2.2反匯編的原理105
5.2.3病毒重定位的原理105
5.2.4獲取kernel32基地址的方法106
5.2.5PE病毒感染文件恢復106
5.2.6修復過程總結106
5.3熟悉masm32107
5.3.1實驗目的107
5.3.2實驗內容及實驗環境107
5.3.3實驗步驟107
5.4病毒重定位110
5.4.1實驗目的110
5.4.2實驗內容及實驗環境110
5.4.3實驗步驟111
5.5kernel32基地址定位及搜索API函數地址114
5.5.1實驗目的114
5.5.2實驗內容及實驗環境115
5.5.3實驗步驟115
5.6病毒感染過程119
5.6.1實驗目的119
5.6.2實驗內容及實驗環境120
5.6.3實驗步驟120
5.7本章小結124
5.8問題討論與課後提升124
5.8.1問題討論124
5.8.2課後提升124
第6章宏病毒與腳本病毒125
6.1實驗概述125
6.2實驗預備知識與基礎125
6.2.1宏的使用與宏病毒125
6.2.2VBS腳本病毒分析126
6.2.3PowerShell腳本病毒分析127
6.3宏的使用與宏病毒128
6.3.1實驗目的128
6.3.2實驗內容及實驗環境128
6.3.3實驗步驟128
6.4VBS腳本病毒分析133
6.4.1實驗目的133
6.4.2實驗內容及實驗環境133
6.4.3實驗步驟133
6.5PowerShell腳本病毒分析136
6.5.1實驗目的136
6.5.2實驗內容及實驗環境136
6.5.3實驗步驟136
6.6本章小結139
6.7問題討論與課後提升140
6.7.1問題討論140
6.7.2課後提升140
第7章網絡木馬機理分析141
7.1實驗概述141
7.2實驗預備知識與基礎141
7.2.1文件與註冊表活動監測141
7.2.2網絡活動監測141
7.3文件與註冊表監控工具的基本使用141
7.3.1實驗目的141
7.3.2實驗內容及實驗環境142
7.3.3實驗步驟142
7.4網絡抓包工具的基本使用144
7.4.1實驗目的144
7.4.2實驗內容及實驗環境144
7.4.3實驗步驟144
7.5虛擬機樣本調試環境的配置148
7.5.1實驗目的148
7.5.2實驗內容及實驗環境148
7.5.3實驗步驟148
7.6灰鴿子木馬的使用與機理分析152
7.6.1實驗目的152
7.6.2實驗內容及實驗環境152
7.6.3實驗步驟152
7.7本章小結158
7.8問題討論與課後提升158
7.8.1問題討論158
7.8.2課後提升159
第8章網絡蠕蟲160
8.1實驗概述160
8.2實驗預備知識與基礎160
8.2.1網絡蠕蟲簡介160
8.2.2WannaCry蠕蟲背景介紹161
8.2.3Slammer蠕蟲背景介紹162
8.2.4蠕蟲傳播機制分析及實驗註意事項163
8.3WannaCry傳播機制分析之初始化操作163
8.3.1實驗目的163
8.3.2實驗內容及實驗環境163
8.3.3實驗步驟163
8.4本章小結174
8.5問題討論與課後提升174
8.5.1問題討論174
8.5.2課後提升175
第9章勒索病毒分析176
9.1實驗概述176
9.2實驗預備知識與基礎176
9.2.1WannaCry 勒索病毒177
9.2.2GandCrab勒索病毒177
9.3WannaCry 勒索機制復現及機理分析178
9.3.1實驗目的178
9.3.2實驗內容及實驗環境178
9.3.3實驗步驟178
9.4GandCrab復現及機理分析187
9.4.1實驗目的187
9.4.2實驗內容及實驗環境187
9.4.3實驗步驟187
9.5本章小結189
9.6問題討論與課後提升189
9.6.1問題討論189
9.6.2課後提升189
第三部分惡意代碼樣本分析與檢測
第10章軟件加殼與脫殼192
10.1實驗概述192
10.2實驗預備知識與基礎192
10.2.1加殼原理192
10.2.2手工脫殼方法與原理193
10.2.3實驗工具193
10.3加殼與查殼工具的基本使用實驗194
10.3.1實驗目的194
10.3.2實驗內容及實驗環境194
10.3.3實驗步驟194
10.4手工脫殼196
10.4.1實驗目的196
10.4.2實驗內容及實驗環境196
10.4.3實驗步驟196
10.5本章小結199
10.6問題討論與課後提升199
10.6.1問題討論199
10.6.2課後提升200
第11章樣本靜態分析201
11.1實驗概述201
11.2實驗預備知識與基礎201
11.2.1加殼與惡意代碼混淆201
11.2.2PE文件格式201
11.2.3ASCII與Unicode202
11.2.4Strings工具202
11.2.5PE Tools203
11.3PEiD的基本使用實驗203
11.3.1實驗目的203
11.3.2實驗內容及實驗環境203
11.3.3實驗步驟203
11.4Strings的基本使用實驗205
11.4.1實驗目的205
11.4.2實驗內容及實驗環境205
11.4.3實驗步驟205
11.5PE Tools的基本使用實驗207
11.5.1實驗目的207
11.5.2實驗內容及實驗環境207
11.5.3實驗步驟207
11.6IDA Pro的基本使用實驗208
11.6.1實驗目的208
11.6.2實驗內容及實驗環境209
11.6.3實驗步驟209
11.7本章小結213
11.8問題討論與課後提升214
11.8.1問題討論214
11.8.2課後提升214
第12章樣本動態分析215
12.1實驗概述215
12.2實驗預備知識與基礎215
12.2.1病毒分析流程215
12.2.2病毒分析所需要的基礎215
12.3在線平臺分析216
12.3.1實驗目的216
12.3.2實驗內容及實驗環境216
12.3.3實驗步驟216
12.4樣本概況分析218
12.4.1實驗目的218
12.4.2實驗內容及實驗環境218
12.4.3實驗步驟218
12.5利用IDA和OD進行深度分析223
12.5.1實驗目的223
12.5.2實驗內容及實驗環境223
12.5.3實驗步驟223
12.6本章小結235
12.7問題討論與課後提升235
12.7.1問題討論235
12.7.2課後提升236
第13章樣本溯源分析237
13.1實驗概述237
13.2實驗預備知識與基礎237
13.2.1惡意軟件溯源概述237
13.2.2pefile模塊237
13.2.3溯源特徵及關聯分析237
13.2.4樣本相似性分析238
13.3簡單靜態溯源特徵提取及靜態域名關聯分析238
13.3.1實驗目的238
13.3.2實驗內容及實驗環境238
13.3.3實驗步驟238
13.4簡單樣本功能相似性分析241
13.4.1實驗目的241
13.4.2實驗內容及實驗環境241
13.4.3實驗步驟241
13.5本章小結242
13.6問題討論與課後提升242
13.6.1問題討論242
13.6.2課後提升242
第14章樣本特徵檢測引擎243
14.1實驗概述243
14.2實驗預備知識與基礎243
14.2.1Linux系統常用防病毒檢測工具243
14.2.2ClamAV244
14.3ClamAV的環境搭建與安裝配置244
14.3.1實驗目的244
14.3.2實驗內容及實驗環境244
14.3.3實驗步驟244
14.4ClamAV的基礎使用247
14.4.1實驗目的247
14.4.2實驗內容及實驗環境247
14.4.3實驗步驟247
14.5本章小結250
14.6問題討論與課後提升250
14.6.1問題討論250
14.6.2課後提升250
第15章樣本行為在線分析251
15.1實驗概述251
15.2實驗預備知識與基礎251
15.2.1VirusTotal251
15.2.2Cuckoo Sandbox253
15.2.3Any.Run254
15.2.4騰訊哈勃分析系統255
15.3Cuckoo Sandbox安裝使用256
15.3.1實驗目的256
15.3.2實驗內容及實驗環境256
15.3.3實驗步驟257
15.4本章小結263
15.5問題討論與課後提升264
15.5.1問題討論264
15.5.2課後提升264
第四部分軟件漏洞分析
第16章漏洞測試框架266
16.1實驗概述266
16.2實驗預備知識與基礎266
16.2.1滲透測試基礎266
16.2.2Metasploit用戶接口269
16.2.3Metasploit模塊271
16.2.4shellcode基礎273
16.2.5模糊測試介紹274
16.3Metasploit安裝與初次使用275
16.3.1實驗目的275
16.3.2實驗內容及實驗環境275
16.3.3實驗步驟275
16.4模糊測試與漏洞利用279
16.4.1實驗目的279
16.4.2實驗內容及實驗環境279
16.4.3實驗步驟279
16.5攻破無線路由器284
16.5.1實驗目的284
16.5.2實驗內容及環境284
16.5.3實驗步驟284
16.6本章小結287
16.7問題討論與課後提升287
16.7.1問題討論287
16.7.2課後提升288
第17章棧溢出漏洞289
17.1實驗概述289
17.2實驗預備知識與基礎289
17.2.1棧溢出原理289
17.2.2DEP機制及繞開DEP的方法291
17.3利用棧溢出實現目標代碼跳轉293
17.3.1實驗目的293
17.3.2實驗內容及實驗環境293
17.3.3實驗步驟293
17.4DEP防護環境下的漏洞攻擊測試296
17.4.1實驗目的297
17.4.2實驗內容及實驗環境297
17.4.3實驗步驟297
17.5本章小結305
17.6問題討論與課後提升306
17.6.1問題討論306
17.6.2課後提升306
第18章堆溢出漏洞307
18.1實驗概述307
18.2實驗預備知識與基礎307
18.2.1堆溢出漏洞簡介307
18.2.2堆數據結構308
18.2.3堆管理策略310
18.2.4堆溢出原理311
18.2.5堆溢出利用312
18.3堆溢出實驗313
18.3.1實驗目的313
18.3.2實驗內容及環境314
18.3.3實驗步驟314
18.4本章小結321
18.5問題討論與課後提升321
18.5.1問題討論321
18.5.2課後提升321
第19章格式化字符串/整數溢出漏洞322
19.1實驗概述322
19.2實驗預備知識與基礎322
19.2.1格式化字符串漏洞322
19.2.2整數溢出漏洞324
19.3格式化字符串漏洞327
19.3.1實驗目的327
19.3.2實驗內容及實驗環境328
19.3.3實驗步驟328
19.4整數溢出漏洞334
19.4.1實驗目的334
19.4.2實驗內容及實驗環境334
19.4.3實驗步驟334
19.5本章小結336
19.6問題討論與課後提升336
19.6.1問題討論336
19.6.2課後提升336
第20章IoT漏洞337
20.1實驗概述337
20.2實驗預備知識與基礎337
20.2.1IoT設備及其常見漏洞簡介337
20.2.2ARM/MIPS匯編340
20.3.3IoT固件345
20.3固件模擬345
20.3.1實驗目的345
20.3.2實驗內容及實驗環境345
20.3.3實驗步驟345
20.4IoT漏洞利用352
20.4.1實驗目的352
20.4.2實驗內容及實驗環境352
20.4.3實驗步驟353
20.5本章小結356
20.6問題討論與課後提升356
20.6.1問題討論356
20.6.2課後提升356
第21章軟件漏洞防禦357
21.1實驗概述357
21.2實驗預備知識與基礎357
21.2.1棧溢出檢查GS357
21.2.2數據執行保護DEP358
21.2.3地址隨機化ASLR358
21.2.4漏洞防禦工具359
21.3基礎漏洞實驗362
21.3.1實驗目的362
21.3.2實驗內容及實驗環境362
21.3.3實驗步驟362
21.4Exploit Protection防護實驗364
21.4.1實驗目的364
21.4.2實驗內容及實驗環境364
21.4.3實驗步驟365
21.5Visual Studio防護實驗366
21.5.1實驗目的366
21.5.2實驗內容及實驗環境366
21.5.3實驗步驟367
21.6本章小結369
21.7問題討論與課後提升369
21.7.1問題討論369
21.7.2課後提升369
第22章GS、DEP與ASLR繞過370
22.1實驗概述370
22.2實驗預備知識與基礎370
22.2.1GS繞過方法370
22.2.2DEP繞過方法371
22.2.3ASLR繞過方法373
22.2.4pwntools、gdb安裝與用法374
22.3利用輸出函數泄露canary377
22.3.1實驗目的377
22.3.2實驗內容及實驗環境377
22.3.3實驗步驟377
22.4利用ROP繞過NX383
22.4.1實驗目的383
22.4.2實驗內容及實驗環境383
22.4.3實驗步驟383
22.5本章小結389
22.6問題討論與課後提升389
22.6.1問題討論389
22.6.2課後提升390
第五部分軟件安全智能化分析
第23章機器學習與惡意代碼檢測392
23.1實驗概述392
23.2實驗預備知識與基礎392
23.2.1機器學習概述392
23.2.2靜態特徵和動態特徵393
23.2.3基於機器學習的惡意代碼檢測流程394
23.3機器學習模型構建與分類395
23.3.1實驗目的395
23.3.2實驗內容及實驗環境395
23.3.3實驗步驟395
23.4基於機器學習的惡意代碼檢測398
23.4.1實驗目的399
23.4.2實驗內容及實驗環境399
23.4.3實驗步驟399
23.5本章小結406
23.6問題討論與課後提升406
23.6.1問題討論406
23.6.2課後提升407
第24章機器學習與惡意代碼家族聚類408
24.1實驗概述408
24.2實驗預備知識與基礎408
24.3特徵預處理409
24.3.1實驗目的409
24.3.2實驗內容及實驗環境409
24.3.3實驗步驟409
24.4聚類實驗410
24.4.1實驗目的410
24.4.2實驗內容及實驗環境410
24.4.3實驗步驟411
24.5本章小結412
24.6問題討論與課後提升412
24.6.1問題討論412
24.6.2課後提升412
第25章Fuzzing與漏洞挖掘413
25.1實驗概述413
25.2實驗預備知識與基礎413
25.2.1AFL概述413
25.2.2選擇初始種子413
25.2.3編譯被測試程序414
25.3AFL的配置及使用實驗414
25.3.1實驗目的414
25.3.2實驗內容及環境414
25.3.3實驗步驟415
25.4本章小結419
25.5問題討論與課後提升420
25.5.1問題討論420
25.5.2課後提升420
參考文獻421