
本书共8章,第1章概述与计算机病毒相关的理论研究成果和研究方法; 第2章介绍Windows系统的内部机制和工作方式; 第3章介绍引导型病毒、PE病毒与脚本病毒的攻击原理和基本方法; 第4章从检测技术和杀毒技术两个方面讨论计算机病毒的防御问题; 第5章主要介绍木马、蠕虫技术,以及恶意代码的发展方向; 第6章主要通过静态分析和动态调试介绍恶意代码的分析方法; 第7章介绍加密、变形等代码自保护技术; 第8章设计了一些与病毒攻防相关的小实验。
本书主要面向信息安全专业的教学和研究,以及对病毒防护技术感兴趣的其他专业人员,可以作为信息安全专业本科生和研究生的“计算机病毒与防护”教材,以及其他相关课程的辅助教材,也可作为从事信息安全领域工作的科研人员或系统管理人员的参考用书。
目前市场上出版过不少计算机病毒方面的教材,但只有少数涉及具体的编程细节,而且大部分与计算机病毒编程的相关内容都停留在DOS时代,因此这些书不能从实践角度讨论目前流行病毒的技术细节。
如今,系统管理员甚至家庭用户常常需要应对网络中的计算机病毒和其他恶意程序。不幸的是,信息安全课程很少讨论利用病毒进行攻击的实现细节,公众也很少知道如何分析和保护其网络免受攻击。
作者在书中介绍了目前流行的计算机病毒所采用的感染技术,重点介绍了相关技术的实现方法。研究病毒的最终目的是为了消灭病毒,“知己知彼,百战不殆”,要想战胜对手,首先就要了解对手,正是由于大多数计算机用户对病毒的原理不了解才造成病毒的横行,对于精通病毒原理的人来说,病毒是毫无攻击力的。研究反病毒技术,必然要熟悉病毒技术,了解病毒原理只是为了认识病毒,消除对病毒的恐惧心理,最终达到能够防毒、清除病毒的目的。
但是探讨计算机病毒技术是一个很敏感的话题。本书中讨论的技术和部分代码仅出于介绍病毒工作原理的目的,读者在使用这些内容时,请遵守国家的相关法律法规。
关于本书的内容
全书共分为8章,其中:
第1章为计算机病毒基础,主要介绍与计算机病毒相关的理论研究结果,这些研究结果对于制定有效的防病毒策略具有重要的指导意义。
第2章为Win32系统关键技术,主要介绍Windows系统的内部机制和工作方式,掌握系统的内部机制是设计和实现计算机病毒的基础,这部分也是学习Win32病毒的难点。
第3章为计算机病毒的感染机制,病毒代码的编写是本书的重点内容,主要介绍了目前主流的计算机病毒的编写方法和技巧,其中引导型病毒虽然比较古老,但是因为其感染方法与操作系统无关,所以目前仍威胁着系统的安全; 而Windows系统的普及,也使得PE病毒能够占据计算机病毒的半壁江山,因此PE病毒的介绍也是本书的核心内容,脚本病毒主要感染互联网网页和Office文档,不论是计算机从业人员还是家庭用户都不能忽视脚本病毒。
第4章为计算机病毒防御技术,主要从检测技术和杀毒技术两方面介绍主流的反病毒技术,包括扫描器、启发式检测、完整性检测器等检测技术,以及文件、内存杀毒的实现方法。
第5章为恶意代码技术的发展,主要介绍木马技术和蠕虫技术,以及缓冲区溢出攻击技术。
第6章为恶意代码的分析技术,主要介绍静态分析技术和动态分析技术的工作原理,包括反汇编技术和Win32 系统的调试机制。
第7章为代码的自保护技术,主要介绍计算机病毒与主流的反病毒技术对抗过程中所出现的自保护技术,包括反汇编、反调试和反替罪羊技术。
第8章为病毒实验,根据作者在信息安全领域多年的研究和教学经验,设计了一些与病毒攻防相关的实验,供读者选做。
对读者的假设
本书是针对一些具有编程经验的安全专业人员而编写的。由于要与系统的底层打交道,不可避免地要使用汇编语言,因此读者要有一定的汇编基础。本书假设读者具备以下基础知识。
操作系统的知识,如进程、线程的概念,存储器的管理机制。
计算机组成原理的知识,如计算机系统典型部件的工作原理。
C/C++语言的基础知识,书中使用更容易理解的高级语言来描述病毒的实现过程。
汇编语言的基础知识,汇编语言与其他高级语言相比更能胜任病毒编写所需的执行效率及代码控制能力。
脚本语言的基础知识,如VBScript。
Intel 80x86处理器的基础知识,如寻址方式和指令的使用等。
书中的约定
除非特别声明,本书使用“Windows 9x”代表Windows 95,Windows 98和Windows Millennium(Windows ME)操作系统; “Windows NTs”代表Windows NT 4,Windows 2000,Windows XP,Windows Server 2003,Windows Vista,Windows 7,Windows 8.x以及Windows 10系统。
另外,鉴于汇编语言中指令助记符复杂多样的特点,本书中使用大写的指令助记符表示某一类指令(如JMP指所有的跳转指令),小写的指令助记符表示该类指令中的某种具体指令(如jmp表示JMP指令中的无条件跳转指令)。
编者
2017年3月
第1章计算机病毒基础
1.1计算机病毒的起源
1.1.1代码的自复制理论基础
1.1.2磁芯大战
1.1.3典型的计算机病毒
1.2计算机病毒的定义
1.2.1计算机病毒的结构
1.2.2计算机病毒的分类
1.3计算机病毒的基本原理
1.3.1计算机病毒的形式化模型
1.3.2计算机病毒的传播模型
1.3.3系统安全模型
1.3.4计算机病毒的防御
1.3.5计算机病毒的特征
1.4计算机病毒的命名
1.4.1命名规则
1.4.2计算机病毒的环境依赖性
第2章Win32系统关键技术
2.1Windows体系结构
2.1.1Win32的含义
2.1.2x86 CPU的工作模式
2.1.3内核态和用户态
2.1.4地址空间
2.2内存管理机制
2.2.1地址绑定
2.2.2Windows的分页机制
2.2.3i386的地址转换
2.2.4内存保护
2.2.5虚拟内存
2.2.6内存映射文件
2.3中断和异常
2.3.1中断
2.3.2Win32系统服务调用
2.3.3异常
2.4存储和文件系统
2.4.1硬盘物理结构
2.4.2硬盘分区结构
2.4.3FAT文件系统
2.4.4NTFS文件系统
2.5典型的可执行文件格式
2.5.1Windows可执行文件
2.5.2.com文件
2.5.3可移植文件格式
2.5.4加载器
第3章计算机病毒的感染机制
3.1引导型病毒
3.1.1系统引导过程
3.1.2引导型病毒的感染原理
3.1.3主引导扇区代码分析
3.1.4引导型病毒的实现
3.2文件型病毒
3.2.1文件型病毒的感染机制
3.2.2可移植文件的操作方法
3.2.3空洞病毒的实现
3.2.4追加新节的实现
3.2.5病毒编写技术
3.3脚本病毒
3.3.1VBS病毒的原理
3.3.2VBS病毒的自保技巧
3.3.3VBS病毒生产机
3.4代码进化技术
3.4.1加密病毒
3.4.2寡态病毒
3.4.3多态病毒
3.4.4变形病毒
3.4.5病毒生产机
第4章计算机病毒防御技术
4.1扫描器技术
4.1.1特征码扫描
4.1.2快速扫描
4.1.3骨架检测
4.1.4精确识别技术
4.1.5算法扫描
4.2启发式检测
4.2.1静态启发式检测
4.2.2动态启发检测技术
4.2.3神经网络启发式检测
4.3行为检测器
4.4完整性检测器
4.5杀毒技术
4.5.1内存杀毒
4.5.2文件杀毒
4.5.3通用杀毒
第5章恶意代码技术的发展
5.1恶意代码及其分类
5.1.1恶意代码攻击机制
5.1.2常见的恶意代码
5.2特洛伊木马技术
5.2.1木马的攻击机制
5.2.2木马的传播技术
5.2.3木马的隐藏技术
5.2.4木马的通信技术
5.3蠕虫技术
5.4缓冲区溢出攻击
5.4.1缓冲区溢出攻击的原理
5.4.2缓冲区溢出攻击的实现
5.4.3ShellCode的编写技巧
第6章恶意代码的分析技术
6.1代码分析环境
6.2静态分析技术
6.2.1x86的指令编码格式
6.2.2x86反汇编
6.3动态跟踪技术
6.3.1Win32调试API
6.3.2Win32调试机制
6.3.3Win32的异常处理机制
第7章代码的自保护技术
7.1防反汇编技术
7.1.1采用加密常量
7.1.2采用复杂指令
7.1.3在操作码中混合数据
7.1.4使用压缩(加密)代码
7.1.5显式链接外部函数
7.1.6使用隐式的字符串
7.2反调试技术
7.2.1使用IsDebuggerPresent() API
7.2.2挂接x86系统调试中断
7.2.3利用代码的校验和检测断点
7.2.4在执行过程中检查栈状态
7.2.5通过异常处理器执行代码
7.3反启发式检测技术
7.3.1利用加壳技术
7.3.2追加多个病毒节
7.3.3伪造文件头部
7.3.4感染首节的空隙
7.3.5扩大首节的空洞
7.3.6压缩首节
7.3.7使用随机入口点
7.3.8隐藏代码节的属性
7.3.9重新计算校验和
7.3.10避免使用CALLtoPOP技巧
7.3.11使用非常规指令
7.3.12随机执行病毒代码
7.4抗替罪羊与反转录病毒
7.4.1抗替罪羊技术
7.4.2反转录病毒技术
7.4.3反转录病毒的典型行为
7.4.4反转录病毒的防范措施
第8章病毒实验设计
8.1实验总目的和要求
8.2引导型病毒的编写
8.3空洞病毒的编写
8.4追加病毒的编写
8.5脚本病毒的编写
8.6手工杀毒技巧
8.7恶意代码的分析
参考文献
本书是一部详细介绍各类计算机病毒工作、传播、感染机制的书,教材中以伪代码的形式给出了相关关键技术的详细实现方法,是目前可以找到的关于计算机病毒相关技术介绍最为详细的一本书。同时为了适应教学,本书还专门设计了系列实验。
加入时,请写明:“学校+姓名”,并写明“加入教师群”,只限教师。