第一章 计算机病毒概述
1.计算机病毒定义
计算机病毒是指编制或者在计算机程序中插入的破坏计算机功能或者毁坏数据,影响计算机使用,并能自我复制的一组计算机指令或者程序代码。
2.※计算机病毒的特性
破坏性 传染性 寄生性 隐蔽性 触发(潜伏)性
3.※计算机病毒的发展趋势是什么?哪些病毒代表了这些趋势?
病毒发展趋势:网络化 专业化 简单化 多样化 自动化 犯罪化
代表病毒:蠕虫、木马
4. ※计算机病毒的主要危害
直接危害:
1 病毒激发对计算机数据信息的直接破坏作用
2 占用磁盘空间和对信息的破坏
3 抢占系统资源
4 影响计算机运行速度
5 计算机病毒错误与不可预见的危害
6 计算机病毒的兼容性对系统运行的影响
间接危害:
1 计算机病毒给用户造成严重的心理压力
2 造成业务上的损失
3 法律上的问题
5. ※计算机病毒和医学上的病毒相似之处是什么?区别又是什么?
相似之处:与生物医学上的病毒同样有寄生传染破坏的特性,因此这一名词是由生物医学上的“病毒”概念引申而来
区别:不是天然存在,是某些人利用计算机软、硬件所固有的脆弱性,编制的具有特殊功能的程序。
6.(了解)木马病毒(闪盘窃密者、证券大盗、外挂陷阱、我的照片我正向外闪
7.※计算机病毒的命名规则
1991年计算机反病毒组织(CARO)提出了一套命名规则,病毒的命名包括五个部分:
家族名组名大变种小变种修改者
CARO规则的一些附加规则包括:
不用地点命名
不用公司或商标命名
如果已经有了名字就不再另起别名
变种病毒是原病毒的子类
举例说明:
精灵(Cunning)是瀑布(Cascade)的变种,它在发作时能奏乐,因此被命名为Cascade.1701.ACascade是家族名,1701是组名。因为Cascade病毒的变种的大小不一(1701, 1704, 1621等),所以用大小来表示组名。A 表示该病毒是某个组中的第一个变种。
业界补充:
反病毒软件商们通常在CARO命名的前面加一个前缀来标明病毒类型。比如,WM表示MS Word宏病毒;Win3232Windows病毒;VBSVB脚本病毒。如Happy 99蠕虫就被称为Win32.Happy99.Worm
第二章 计算机病毒及其防范模型
1.※基于哪种模型设计的计算机是百毒不侵的?
随机访问计算机模型是一种带有累加器的计算机模型,并且在该计算机中指令不能修改自身。RAM由一个只读输入带、一个只写输入带以及一个程序和一台存储器所构成。在RAM模型中,由于程序并不是存储在RAM的存储器中,因此它不能自我修改,当然,也不可能被计算机病毒感染。
2.F.Cohen提出四个病毒预防理论模型:基本隔离分隔限制解释
3.※在没有外来侵扰时,种数量服从微分系统分布
4.※讨论互联网蠕虫病毒传播的三种数学模型的特点。
某种中不存在流行病时:
其种(N )的生长服从微分系统SI(Susceptible[ 易受感染的]-Infected)模型。
有疾病传播时:
1)流行病的传播服从双线形传染率的SIS(Susceptible-Infected-Susceptible)模型。(2SIR(Susceptible-Infected-Removed)模型两个假设:
已被病毒感染的文件(档)具有免疫力。
病毒的潜伏期很短,近似地认为等于零。

第三章  计算机病毒结构分析
1. ※计算机病毒的工作机制
2. 病毒四大模块    引导、感染、破坏、触发
引导区病毒引导过程
搬迁系统引导程序-〉替代为病毒引导程序
启动时-〉病毒引导模块-〉加载传染、破坏和触发模块到内存-〉使用常驻技术
最后,转向系统引导程序-〉引导系统
破坏模块的破坏对象:系统数据区、文件、内存、系统运行速度、磁盘、CMOS、主板和网络等。
静态到动态引导过程
• 驻留内存
• 窃取系统控制权
• 恢复系统功能
3.常见计算机病毒的技术特征
1)驻留内存
2)病毒变种
3 EPOEntry Point Obscuring)技术
计算机病毒的定义(4 抗分析技术(加密、反跟踪)
5 隐蔽性病毒技术
6 多态性病毒技术
7 插入型病毒技术
8 超级病毒技术
9 破坏性感染技术
10)网络病毒技术
4.※多态病毒的级别
半多态、完全多态、具有不动点、带有填充物算法固定算法可变
5.※计算机病毒的攻击性和潜伏性的辩证关系?
计算机病毒在传染和发作之前,往往要判断某些特定条件是否满足,满足则传染或发作,否则不传染或不发作或只传染不发作,这个条件就是计算机病毒的触发条件。
触发模块的目的是调节病毒的攻击性和潜伏性之间的平衡。大范围的感染行为、频繁的破坏行为可能给用户以重创,但是,它们总是使系统或多或少地出现异常,容易使病毒暴露。 而不破坏、不感染又会使病毒失去其特性。 可触发性是病毒的攻击性和潜伏性之间的调整杠杆,可以控制病毒感染和破坏的频度,兼顾杀伤力和潜伏性。
6.※计算机病毒的抗分析技术有哪两种?
自加密技术:这是一种防止静态分析的技术,使得分析者无法在不执行病毒的情况下,阅读加密过的病毒程序。包括数据加密和病毒代码加密。
反跟踪技术:使得分析者无法动态跟踪病毒程序的运行。
                    第四章 传统计算机病毒
MZ格式:是DOS中具有重定位功能的可执行文件格式。MZ可执行文件内含16位代码,在这些代码之前加了一个文件头,文件头中包括各种说明数据,例如,第一句可执行代码执行指令时所需要的文件入口点堆栈的位置重定位表等
1. (理解)PE文件结构及其运行原理
PE(可移植的执行体)是Win32环境自身所带的可执行文件格式。
它的一些特性继承自UnixCoff文件格式。可移植意味着此文件格式是跨win32平台的,即使Windows运行在非IntelCPU上,任何win32平台的PE装载器都能识别和使用该文件格式。当然,移植到不同的CPUPE执行体必然得有一些改变。
PE文件结构总体层次分布
DOS MZ header
MZ’格式头
DOS stub
Dos桩程序
PE header
PE文件头
Section table
节表
Section 1
1个节
Section 2
2个节
Section n
n个节
2. PE病毒如何感染其他文件
常见方法是在文件中添加一个新节,然后,把病毒代码病毒执行后返回宿主程序的代码写入新添加的节中,同时修改PE文件头中入口点,使其指向新添加的病毒代码入口。这样,当程序运行时,首先执行病毒代码,当病毒代码执行完成后才转向执行宿主程序。
病毒感染其他文件的步骤(了解)1.判断目标文件开始的两个字节是否为“MZ”。2.判断PE文件标记“PE”。3.判断感染标记,如果已被感染过则跳出继续执行宿主程序,否则继续。4.获得数据目录个数5.得到节表起始位置6.得到节表的末尾偏移7.开始写入节表
3. DOS操作系统时代,计算机病毒分为引导型病毒、可执行文件病毒两大类
4. ※能够感染EXECOM文件的病毒属于可执行文件病毒
5如何编译win32病毒? 
病毒的重定技术
 为什么需要重定位?
• 正常程序的变量和函数的相对地址都是预先计算好的。
• 病毒是附加在宿主程序中的程序段,其问题在于:病毒变量和病毒函数的相对地址很难计算。
• 解决方法:动态一个参照点,然后再根据参照点的地址确定病毒函数和病毒变量的地址。
获取API函数
 为什么要获得API函数?
• 正常程序用引入表获得
• 病毒只是一个依附在正常程序中的代码段,没有自己的引入表
• 思路:去动态链接库中寻--- 〉相应链接库(kernel32, user32 等)在执行时的基地址。         
第5章 特洛伊木马
木马组成(了解):硬件、软件、连接。
1木马的关键技术:植入自动加载、通信、隐藏
2.特洛伊木马(Trojan Horse)
是一种与远程计算机之间建立起连接,使远程计算机能够通过网络控制用户计算机系统并且可能造成用户的信息损失、系统损坏甚至瘫痪的程序。
3、※木马基本特征(想一下)
1隐蔽性是其首要的特征
2自动运行性、欺骗性、自动恢复功能(高级技术)能自动打开特别的端口、功能的特殊性、黑客组织趋于公开化
4.※隐藏技术——反弹式木马、隐藏端口、dll、用ICMP方法隐藏连接、NT进程的隐藏
1)反弹式木马的原理:利用防火墙对内部发起的连接请求无条件信任的特点,假冒是系
统的合法网络请求来取得对外的端口,再通过某些方式连接到木马的客户端,从而窃取用户计算机的资料同时遥控计算机本身。
2)反弹式木马访问客户端的80端口,防火墙无法限制。例如,“网络神偷”
3)防范:使用个人防火墙,其采用独特的“内墙”方式应用程序访问网络规则
永远不要执行任何来历不明的软件或程序
永远不要相信你的邮箱不会收到垃圾和病毒
永远不要因为对方是你的好朋友就轻易执行他发过来的软件或程序。
不要随便在网络上留下你的个人资料。
不要轻易相信网络上认识的新朋友。
不要随便在网络空间招惹是非,防止别人用木马报复你。
7.(了解)木马的植入技术发展趋势
升级植入、网页植入、漏洞植入、U盘植入、程序绑定、QQ发或邮件发网页木马
木马的发展趋势:跨平台性、模块化设计、更强的感染、更多的功能
9.隐藏技术——NT进程的隐藏
进程和端口联系在一起的方法很常见。因此,需要隐藏进程来达到隐藏木马的目的。
实现进程隐藏有两种思路:
第一是让系统管理员看不见(或者视而不见)你的进程, 即进程列表欺骗。
第二是不使用进程。
第一种方式:进程列表欺骗
第二种方式:DLL(最流行)
  DLLWindows系统的另一种“可执行文件”。DLL文件是Windows的基础,因为所有的
API函数都是在DLL中实现的。DLL文件没有程序逻辑,是由多个功能函数构成,它并不能独
立运行,一般都是由进程加载并调用的。
  假设我们编写了一个木马DLL,并且通过别的进程来运行它,那么无论是入侵检测软件还是进程列表中,都只会出现那个进程而并不会出现木马DLL,如果那个进程是可信进程,那么我们编写的DLL作为那个进程的一部分,也将成为被信赖的一员而为所欲为。