×
暂无评论
图文详情
  • ISBN:9787302680048
  • 装帧:平装-胶订
  • 册数:暂无
  • 重量:暂无
  • 开本:其他
  • 页数:0
  • 出版时间:2025-01-01
  • 条形码:9787302680048 ; 978-7-302-68004-8

本书特色

本书为战略性新兴领域“十四五”高等教育教材体系建设团队——新一代信息技术(网络空间安全)建设项目。本书可作为“软件安全”课程的配套实验教材,也可以作为软件安全方向的实训教材。主要包括软件安全基础、恶意代码、软件漏洞等方多个领域,相关实验具体覆盖到:磁盘结构与数据恢复、可执行文件结构剖析、恶意代码感染与传播、恶意代码样本分析、栈溢出漏洞分析、堆溢出漏洞分析、系统漏洞防护机制分析、高级漏洞利用技术、软件自我保护与破解等知识。特色:对抗博弈、攻防兼备,读者对象:信息安全专业本科生及研究生,软件安全从业者及爱好者。


内容简介

"本书共25章,覆盖了软件安全基础、恶意代码机理分析、恶意代码样本分析与检测、软件漏洞分析,以及软件安全智能化分析5个领域。 软件安全基础部分的相关实验具体涉及磁盘结构与数据恢复、程序链接与执行过程分析、PE及ELF可执行文件结构剖析,旨在加强读者的软件安全基础,这对于读者后续理解恶意代码和软件漏洞的机理、分析与防护技术具有重要作用。 恶意代码机理分析部分具体包括Windows PE病毒、宏病毒与脚本病毒、网络木马机理分析、网络蠕虫、勒索病毒分析等,旨在加强读者对典型恶意代码机理的理解。 恶意代码样本分析与检测部分具体包括软件加壳与脱壳、样本静态分析、样本动态分析、样本溯源分析、样本特征检测引擎(ClamAV)、样本行为在线分析等,旨在加强读者对恶意代码样本的处理、分析与检测方法的理解,提升读者的恶意代码分析与检测能力。 软件漏洞分析部分具体包括漏洞测试框架、栈溢出漏洞、堆溢出漏洞、格式化字符串/整型溢出漏洞、IoT漏洞、软件漏洞防御、GS/DEP与ALSR绕过等,旨在加强读者对软件漏洞测试框架、漏洞机理、挖掘与防护机制的理解,提升读者的漏洞攻防实践能力。 软件安全智能化分析部分具体包括机器学习与恶意代码检测、机器学习与恶意代码家族聚类,以及Fuzzing与漏洞挖掘等,旨在帮助读者掌握智能化分析的基本方法,并将这些方法用于恶意代码检测与软件漏洞分析挖掘。 本书可作为高等院校软件安全、恶意代码、软件漏洞及相关课程的配套实验教材,也可以作为软件安全方向的实训教材。 "

前言

2001年,在张焕国教授带领下,武汉大学信息安全团队创建了全国**个信息安全本科专业,截至2023年年底,我国有320余所高校开设了网络空间安全类专业点386个。另外,全国高校设立了80余所网络空间安全学院和37个网络空间安全博士点,我国网络空间安全学科和人才培养得到了迅速发展。“软件安全”课程是信息安全和网络空间安全专业的一门核心课程,其系统性及实践性强,对学生实践能力的培养尤为迫切,但目前配套实验教材非常欠缺。
作者所在的课程组在2004年、2009年出版了《计算机病毒分析与对抗》第1版、第2版,并于2015年出版了《软件安全》教材,为推动学生实践能力培养,课程组自主设计了系列实验。2020年,课程组录制了软件安全实验在线课程,在武汉大学“珞珈在线”平台上线,每年服务于武汉大学信息安全专业必修课“软件安全实验”、网络空间安全专业指定选修课“计算机病毒”,以及部分兄弟院校相关课程的实验教学工作,取得良好效果。在武汉大学规划教材建设项目支持下,本课程组正式启动了《软件安全实践》教材的编写工作,经过多年的努力,本书终于得以完稿。

目录

**部分软件安全基础
第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

展开全部

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航