




已阅读5页,还剩202页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章计算机病毒防治 4 1计算机病毒概述4 2DOS环境下的病毒4 3宏病毒4 4网络病毒4 5现代计算机病毒流行特性 4 6杀毒软件技术4 7典型病毒介绍4 8常用反病毒软件产品习题 4 1计算机病毒概述 4 1 1病毒的定义 计算机病毒 一词最早是由美国计算机病毒研究专家F Cohen博士提出的 病毒 一词是借用生物学中的病毒 通过分析研究计算机病毒 人们发现它在很多方面与生物病毒有着相似之处 计算机病毒在 中华人民共和国计算机信息系统安全保护条例 中的定义为 指编制或者在计算机程序中插入的破坏计算机功能或者数据 影响计算机使用并且能够自我复制的一组计算机指令或者程序代码 4 1 2计算机病毒的历史随着计算机在各行各业的大量应用 计算机病毒也随之渗透到计算机世界的每个角落 常以人们意想不到的方式侵入计算机系统 计算机病毒的流行引起人们的普遍关注 成为影响计算机安全运行的一个重要因素 世界上第一例被证实的病毒是在1983年 直到1987年 病毒并没有真正在世界上传播开来 也没有引起人们的重视 更没有被充分认识到将造成多大的危害 1988年11月的一次病毒发作 造成Internet网上的6200多用户系统瘫痪 经济损失达九千多万美元 随后一系列病毒事件的发生 才引起人们对计算机病毒高度重视 并在国际计算机领域掀起了一个探讨病毒的高潮 计算机病毒的发展经历了以下几个阶段 1 DOS引导阶段1987年 计算机病毒主要是引导型病毒 具有代表性的是 小球 石头 Azusa Hong Kong 2708病毒等 当时计算机数量较少 功能简单 一般需要通过软盘启动后使用 引导型病毒利用软盘的启动原理工作 它们修改系统引导扇区 在计算机启动时首先取得控制权 减少系统内存 修改磁盘读写中断 在系统存取操作磁盘时传播 影响系统工作效率 病毒自身代码不隐藏不加密 所以查 解都很容易 1989年引导型病毒发展为可以感染硬盘 典型的代表有 石头2 2 DOS可执行文件阶段1989年 可执行文件型病毒出现 一般只传染 COM和 EXE可执行文件 它们利用DOS系统加载执行文件的机制工作 如 耶路撒冷 星期天 病毒 病毒代码在系统执行文件时取得控制权 修改DOS中断 在系统调用时进行传染 将自己附加在可执行文件中 被感染的文件长度明显变长 病毒代码没有加密 同样这类病毒容易查 解 3 混合型阶段1990年以后出现双料病毒 既感染文件同时又感染引导记录 也称混合型病毒 常见的有Flip OmicronXqrinvader 侵入者 Plastique 塑料炸弹 ALFA 3072 2 Ghost One Half 3544 幽灵 Natas 幽灵王 TPVO 3783等 如果只解除了感染文件上的病毒 而没有清除引导区的病毒 那么在系统重新引导时病毒又将激活 会重新感染文件 如果只清除了引导区的病毒而没有清除文件上的病毒 一旦执行被感染文件 就又会感染硬盘引导区 4 伴随 批次型阶段1992年 伴随型病毒出现 它们利用DOS加载文件的优先顺序进行工作 具有代表性的是 金蝉 病毒 它感染EXE文件时生成一个和EXE同名的扩展名为COM的伴随体 它感染COM文件时 将原来的COM文件改为同名的EXE文件 再产生一个原名的伴随体 文件扩展名为 COM 这样 在DOS加载文件时 病毒就取得控制权 这类病毒的特点是不改变原来的文件内容 日期及属性 解除病毒时只要将其伴随体删除即可 在非DOS操作系统中 一些伴随型病毒利用操作系统的描述语言进行工作 较典型的代表是 海盗旗 病毒 它在得到执行时 询问用户名称和口令 然后返回一个出错信息 将自身删除 批次型病毒是工作在DOS下的和 海盗旗 病毒类似的一类病毒 5 多形型阶段1994年 随着汇编语言编程技术的发展 实现同一功能可以用不同的方式来完成 这些方式的组合使一段看似随机的代码产生相同的运算结果 幽灵病毒就是利用这个特点 每感染一次就产生不同的代码 病毒能产生一段有上亿种可能的代码运算程序 也称 多态 病毒 病毒体被隐藏在解码前的加密数据中 查解这类病毒必须能对这段数据进行解码 加大了查毒的难度 多形型病毒是一种综合性病毒 它既能感染引导区又能感染程序区 多数具有解码算法 一种病毒往往要两段以上的子程序方能解除 6 生成器 变体机阶段1995年 在汇编语言中 一些数据的运算放在不同的通用寄存器中 可运算出同样的结果 随机插入一些空操作和无关指令 也不影响运算的结果 这样 一段解码算法就可以由生成器生成 当生成的是病毒时 这种复杂的病毒生成器和变体机就产生了 比较典型的代表是 病毒制造机 VCL 它可以在瞬间制造出成千上万种不同的病毒 查解时就不能使用传统的特征识别法 需要在宏观上分析指令 解码后查解病毒 变体机就是增加解码复杂程度的指令生成机 7 网络 蠕虫阶段1995年以后 随着网络的普及 病毒大量利用网络进行传播 但只是以上几代病毒的改进 在非DOS操作系统中 蠕虫 是典型的代表 它不占用除内存以外的任何资源 不修改磁盘文件 利用网络功能搜索网络地址 将自身向下一地址进行传播 有时也在网络服务器和启动文件中存在 8 视窗阶段1996年 随着Windows3 x和Windows95的日益普及 利用Windows传播的病毒迅速发展 它们修改 NE PE 文件 典型的代表是DS 3873病毒 这类病毒的机制更为复杂 它们利用保护模式和API调用接口工作 解除方法也比较复杂 近一两年流行的CIH病毒就是一种专门感染Windows95 98程序文件的病毒 这种病毒使用WindowsVXD 虚拟设备驱动程序 技术 发作时不仅破坏硬盘数据 而且还对一些使用FlashROM芯片存储BIOS程序的主板造成损坏 9 宏病毒阶段1996年 随着WindowsWord功能的增强 使用Word宏语言也可以编制病毒 这种病毒使用类Basic语言 编写容易 感染Word文档文件 在Excel和AmiPro上出现的相同工作机制的病毒也归为此类 10 互联网阶段1997年 随着因特网的发展 各种病毒也开始利用因特网进行传播 一些携带病毒的数据包和邮件越来越多 如果不小心打开了这些邮件 机器就有可能中毒 1997年 随着万维网上Java的普及 利用Java语言进行传播和获取资料的病毒开始出现 这类病毒的主要特点是 它们一般不需要宿主程序 多数都能够跨平台 借助网络迅速传播 破坏系统数据 有一些能够窃取使用者的重要数据资料 如个人的数据文件 网络帐号密码 信用卡信息等 网络病毒的查杀具有更大的难度 而且容易复发 4 1 3计算机病毒的特点要做好反病毒技术的研究 首先要认清计算机病毒的特点和行为机理 为防范和清除计算机病毒提供充实可靠的依据 根据对计算机病毒的产生 传染和破坏行为的分析 总结出病毒的几个主要特点 1 刻意编写人为破坏计算机病毒不是偶然自发产生的 而是人为编写的有意破坏 严谨精巧的程序段 它是严格组织的程序代码 与所在环境相互适应并紧密配合 编写病毒的动机一般有以下几种情况 为了表现和证明自己 出于对上级的不满 出于好奇的 恶作剧 为了报复 为了纪念某一事件等等 也有因为政治 军事 民族 宗教 专利等方面的需要而专门编写的 有的病毒编制者为了相互交流或合作 甚至形成了专门的病毒组织 计算机病毒的破坏性多种多样 若按破坏性粗略分类 可以分为良性病毒和恶性病毒 恶性病毒是指在代码中包含有损伤 破坏计算机系统的操作 在其传染或发作时会对系统直接造成严重损坏 它的破坏目的非常明确 如破坏数据 删除文件 格式化磁盘 破坏主板等 因此恶性病毒非常危险 良性病毒是指不包含立即直接破坏的代码 只是为了表现其存在或为说明某些事件而存在 如只显示某些信息 或播放一段音乐 或没有任何破坏动作但不停地传播 但是这类病毒的潜在破坏还是有的 它使内存空间减少 占用磁盘空间 降低系统运行效率 使某些程序不能运行 它还与操作系统和应用程序争抢CPU的控制权 严重时导致系统死机 网络瘫痪 2 自我复制能力自我复制也称 再生 或 传染 再生机制是判断是不是计算机病毒的最重要依据 这一点与生物病毒的特点也最为相似 在一定条件下 病毒通过某种渠道从一个文件或一台计算机传染到另外没有被感染的文件或计算机 轻则造成被感染的计算机数据破坏或工作失常 重则使计算机瘫痪 病毒代码就是靠这种机制大量传播和扩散的 携带病毒代码的文件称为计算机病毒载体或带毒程序 每一台被感染了病毒的计算机 本身既是一个受害者 又是计算机病毒的传播者 通过各种可能的渠道 如软盘 光盘 活动硬盘 网络去传染其它的计算机 在染毒的计算机上曾经使用过的软盘 很有可能已被计算机病毒感染 如果拿到其它机器上使用 病毒就会通过带毒软盘传染这些机器 如果计算机已经连网 通过数据或程序共享 病毒就可以迅速传染与之相连的计算机 若不加控制 就会在很短时间内传遍整个世界 3 夺取系统控制权当计算机在正常程序控制之下运行时 系统运行是稳定的 在这台计算机上可以查看病毒文件的名字 查看或打印计算机病毒代码 甚至拷贝病毒文件 系统都不会激活并感染病毒 病毒为了完成感染 破坏系统的目的必然要取得系统的控制权 这是计算机病毒的另外一个重要特点 计算机病毒一经在系统中运行 病毒首先要做初始化工作 在内存中找到一片安身之地 随后将自身与系统软件挂起钩来执行感染程序 在这一系列的操作中 最重要的是病毒与系统挂起钩来 即取得系统控制权 系统每执行一次操作 病毒就有机会执行它预先设计的操作 完成病毒代码的传播或进行破坏活动 反病毒技术也正是抓住计算机病毒的这一特点提前与病毒取得系统控制权 阻止病毒取得系统控制权 然后识别出计算机病毒的代码和行为 4 隐蔽性不经过程序代码分析或计算机病毒代码扫描 病毒程序与正常程序不易区别开 在没有防护措施的情况下 计算机病毒程序取得系统控制权后 可以在很短的时间里大量传染 而在受到传染后 一般计算机系统仍然能够运行 被感染的程序也能执行 用户不会感到明显的异常 这便是计算机病毒的隐蔽性 正是由于这种隐蔽性 计算机病毒得以在用户没有察觉的情况下扩散传播 计算机病毒的隐蔽性还表现在病毒代码本身设计得非常短小 一般只有几百到几K字节 非常便于隐藏到其它程序中或磁盘的某一特定区域内 随着病毒编写技巧的提高 病毒代码本身还进行加密或变形 使得对计算机病毒的查找和分析更困难 容易造成漏查或错杀 5 潜伏性大部分病毒在感染系统后一般不会马上发作 它可长期隐藏在系统中 除了传染外 不表现出破坏性 这样的状态可能保持几天 几个月甚至几年 只有在满足其特定条件后才启动其表现模块 显示发作信息或进行系统破坏 使计算机病毒发作的触发条件主要有以下几种 1 利用系统时钟提供的时间作为触发器 这种触发机制被大量病毒使用 2 利用病毒体自带的计数器作为触发器 病毒利用计数器记录某种事件发生的次数 一旦计数器达到设定值 就执行破坏操作 这些事件可以是计算机开机的次数 可以是病毒程序被运行的次数 还可以是从开机起被运行过的程序数量 等等 3 利用计算机内执行的某些特定操作作为触发器 特定操作可以是用户按下某些特定键的组合 可以是执行的命令 可以是对磁盘的读写 被病毒使用的触发条件多种多样 而且往往是由多个条件的组合触发 大多数病毒的组合条件是基于时间的 再辅以读写盘操作 按键操作以及其它条件 6 不可预见性不同种类病毒的代码千差万别 病毒的制作技术也在不断地提高 病毒比反病毒软件永远是超前的 新的操作系统和应用系统的出现 软件技术的不断发展 也为计算机病毒提供了新的发展空间 对未来病毒的预测更加困难 这就要求人们不断提高对病毒的认识 增强防范意识 人为编制的病毒人类一定会战胜它 4 1 4计算机病毒的破坏行为计算机病毒的破坏性表现为病毒的杀伤能力 病毒破坏行为的激烈程度取决于病毒作者的主观愿望和他的技术能力 数以万计 不断发展的病毒破坏行为千奇百怪 不可穷举 根据有关病毒资料可以把病毒的破坏目标和攻击部位归纳如下 1 攻击系统数据区 攻击部位包括 硬盘主引导扇区 Boot扇区 FAT表 文件目录 一般来说 攻击系统数据区的病毒是恶性病毒 受损的数据不易恢复 2 攻击文件 病毒对文件的攻击方式很多 如删除 改名 替换内容 丢失簇 对文件加密等 3 攻击内存 内存是计算机的重要资源 也是病毒攻击的重要目标 病毒额外地占用和消耗内存资源 可导致一些大程序运行受阻 病毒攻击内存的方式有大量占用 改变内存总量 禁止分配和蚕食内存 4 干扰系统运行 使运行速度下降 此类行为也是花样繁多 如不执行命令 干扰内部命令的执行 虚假报警 打不开文件 内部栈溢出 占用特殊数据区 换现行盘 时钟倒转 重启动 死机 强制游戏 扰乱串并接口等等 病毒激活时 系统时间延迟程序启动 在时钟中纳入循环计数 迫使计算机空转 运行速度明显下降 5 干扰键盘 喇叭或屏幕 病毒干扰键盘操作 如响铃 封锁键盘 换字 抹掉缓存区字符 重复 输入紊乱 许多病毒运行时 会使计算机的喇叭发出响声 病毒扰乱显示的方式很多 如字符跌落 环绕 倒置 显示前一屏 光标下跌 滚屏 抖动 乱写 吃字符等等 6 攻击CMOS 在机器的CMOS中 保存着系统的重要数据 如系统时钟 磁盘类型 内存容量等 并具有校验和 有的病毒激活时 能够对CMOS区进行写入动作 破坏CMOS中的数据 新发现的CIH病毒破坏计算机硬件 乱写某些主板BIOS芯片 损坏硬盘 7 干扰打印机 假报警 间断性打印 更换字符 网络病毒破坏网络系统 非法使用网络资源 破坏电子邮件 发送垃圾信息 占用网络带宽等等 4 1 5计算机病毒的命名与分类对计算机病毒命名 各个组织或公司不尽相同 有时对一种病毒 不同的软件会报出不同的名称 如 SPY 病毒 KILL起名为SPY KV300则叫 TPVO 3783 给病毒起名的方法不外乎以下几种 按病毒出现的地点 如 ZHENJIANG JES 其样本最先来自镇江某用户 按病毒中出现的人名或特征字符 如 ZHANGFANG 1535 DISKKILLER 上海一号 按病毒发作时的症状命名 如 火炬 蠕虫 按病毒发作的时间 如 NOVEMBER9 在11月9日发作 有些名称包含病毒代码的长度 如 PIXEL xxx 系列 KO xxx 等 从第一个病毒出世以来 究竟世界上有多少种病毒说法不一 无论多少种 病毒的数量仍在不断增加 据国外统计 计算机病毒以10种 周的速度递增 另据我国公安部统计 国内以4种 月的速度递增 病毒种类众多 分类如下 1 按传染方式分为引导型 文件型和混合型病毒 引导型病毒利用软盘的启动原理工作 修改系统启动扇区 在计算机启动时首先取得控制权 减少系统内存 修改磁盘读写中断 在系统存取操作时进行传播 影响系统工作效率 文件型病毒一般只传染磁盘上的可执行文件COM EXE等 在用户调用染毒的执行文件时 病毒首先运行 然后病毒驻留内存伺机传染其他文件或直接传染其他文件 其特点是附着于正常程序文件中 成为程序文件的一个外壳或部件 这是较为常见的传染方式 混合型病毒兼有以上两种病毒的特点 既感染引导区又感染文件 因此这种病毒更易传染 2 按连接方式分为源码型 入侵型 操作系统型和外壳型病毒 源码型病毒较为少见 亦难以编写 传播 因为它要攻击高级语言编写的源程序 在源程序编译之前插入其中 并随源程序一起编译 连接成可执行文件 这样刚刚生成的可执行文件便已经带毒了 入侵型病毒可用自身代替正常程序中的部分模块或堆栈区 因此这类病毒只攻击某些特定程序 针对性强 一般情况下也难以发现和清除 操作系统病毒可用其自身部分加入或替代操作系统的部分功能 因其直接感染操作系统 这类病毒的危害性也较大 外壳病毒将自身附在正常程序的开头或结尾 相当于给正常程序加了个外壳 大部分的文件型病毒都属于这一类 3 按破坏性可分为良性病毒和恶性病毒 4 宏病毒是近几年才出现的 按方式分类属于文件型病毒 5 网络病毒指基于在网上运行和传播 影响和破坏网络系统的病毒 应该指出分类是相对的 同一种病毒按不同分类可属于不同类型 4 1 6计算机病毒的结构计算机病毒在结构上有着共同性 一般由引导部分 传染部分 表现部分几部分组成 1 引导部分也就是病毒的初始化部分 它随着宿主程序的执行而进入内存 为传染部分做准备 2 传染部分作用是将病毒代码复制到目标上去 一般病毒在对目标进行传染前 要判断传染条件 如CIH病毒只针对Windows95 98操作系统 判断病毒是否已经感染过该目标等 3 表现部分是病毒间差异最大的部分 前两部分是为这部分服务的 它破坏被传染系统或者在被传染系统的设备上表现出特定的现象 大部分病毒都是在一定条件下才会触发其表现部分的 4 2DOS环境下的病毒 4 2 1DOS基本知识介绍1 DOS的基本结构DOS由4个相互独立又相互联系的程序模块组成 这四个模块构成了DOS的4个层次 它们是引导记录模块 基本输入输出模块 核心模块和SHELL模块 1 引导记录模块当FORMAT格式化磁盘时 它作为一个记录写在软盘的0面0道1扇区 或硬盘上DOS分区的第一个扇区 引导记录模块由三部分组成 软 硬 盘I O参数表 软 硬 盘基数表 引导记录块 2 基本输入输出模块又称基本输入输出管理模块 它由两部分组成 系统初始化程序 标准字符和块设备驱动程序 系统初始化程序完成确定内存容量 定位DOS核心模块的初始化程序 解释CONFIG SYS文件并设置系统环境 加载可安装的设备驱动程序以及命令处理程序等 加载时该模块以文件名IO SYS装入内存 系统启动成功后该程序消失 3 核心模块这部分是文件管理和系统调用模块 是DOS的内核 它由内核初始化程序 系统功能调用程序组成 内核初始化程序完成DOS内部初始化工作 负责设置DOS中断向量入口 检查常驻的设备驱动链 根据块设备驱动程序返回的磁盘参量 建立磁盘I O参数表以及设置缺省的磁盘扇区缓冲区等 系统功能调用程序主要由INT21h构成 该程序向用户提供由0 63h子功能号组成的系统功能调用 当应用程序调用这些功能时 首先要设置寄存器为指定的参数 然后由系统调用这些功能 如 文件和记录的管理 内存管理 字符设备的输入 输出 目录管理 日期和时间管理 假脱机 网络管理 程序结束等 核心模块的文件名为MSDOS SYS 4 SHELL模块即命令处理程序 它是用户和操作系统的接口 任务是分析执行用户命令 包括从磁盘上加载程序到内存运行 该模块由三部分组成 常驻部分CCPR SHELL初始化程序 暂驻部分CCPT 在启动时该模块以文件名COMMAND COM装入内存并分常驻和暂驻两部分 2 DOS启动过程PCX86系列计算机设计时 都使0FFFF0H处于ROM区中并将该地址设计为一条跳转指令 将控制权转交自检程序和ROM引导装入程序 所以计算机系统加电启动后 程序执行的首地址总是0FFFF0H 和DOS操作系统无关 系统启动有冷启动和热启动之分 冷启动有两种情况 开机或按RESET开关 都使CPU进入复位状态 并置CS IP为FFFF 0000 热启动是按复位组合键CTRL ALT DEL后 键盘中断程序复位标志为1234H 使系统直接跳转到自检程序 1 硬件自检自检程序包含对系统硬件进行测试的13个项目 处理器内部寄存器测试 ROM BIOS芯片字节的检查 DMA控制器测试 基本RAM存储器测试 CRT视频接口测试 中断控制器测试 定时器测试 键盘测试 扩展I O测试 附加RAM存储器测试 早期ROM BASIC和其他程序测试 软盘设备测试和设置打印机和串行口基本地址 在测试中 热启动则不对存储器测试 测试过程中 若前四项有故障 则为致命性错误 将会停机 其他故障均为一般性错误 会在屏幕上显示相应的错误信息供用户检测 2 自举程序负责装入DOS引导记录并执行 系统没有安装硬盘时 执行该段程序 当软盘驱动器门未合上或读盘不成功时 均自动提示 当有硬盘并成功地连接系统后 硬盘自举程序会取代本程序 DOS引导记录是当格式化磁盘时记录在软盘的0面0道1扇区上的 一旦自举程序INT19H将其读入内存的指定区域 就把控制权转交给它 其作用是检查驱动器插入的磁盘是否为系统盘 若是则引导DOS进入内存 否则显示出错信息Non systemdiskordiskerror或Diskbootfailure 对于硬盘 引导记录是放在DOS分区的首部 3 系统初始化程序第一阶段当DOS引导记录执行完毕 控制转到隐含文件IO SYS的初始化代码 该代码调用SYSINIT程序完成系统的初始化工作 SYSINIT是系统的初始化程序 是DOS BIOS模块的一个重要组成部分 它首先在内存50 70处建立磁盘基数表 表长11个字节 该表反映磁盘驱动器的工作参数 建立磁盘基数表之后 设置中断向量 其中中断向量1H 3H和4H分别表示单步 断点和溢出中断 1BH是处理键盘中断 CTRL BREAK键 这些向量指示的原中断均无实质性内容 现已由初始化程序设置了新的向量入口 以便指向由DOS提供的中断例程 同时调用BIOS中断11H和12H来确定系统硬件配置和RAM的实际容量 供以后DOS管理系统设备和分配内存空间时使用 SYSINIT初始化工作完成后 将其自身上移到内存的高端位置 原占据的空间由DOS的内核MSDOS SYS文件下移填补 4 DOS内核初始化程序DOS初始化程序由SYSINIT程序调用 它包括以下初始化任务 在初始化DOS内核模块用的内部表和工作区之后 对DOS中断使用的8个向量入口进行设置 对常驻的设备驱动程序组成的设备进行检查 并调用每个驱动程序的初始化功能 建立缺省的磁盘扇区缓冲区 2个 和缺省的文件句柄控制块 8个 5 建立系统运行环境DOS内核初始化工作完成之后将返回SYSINIT程序执行第二阶段的初始化工作 包括以下内容 打开文件CONFIG SYS并依次解释每条命令 根据指定配置命令建立DOS运行系统环境 如磁盘扇区缓冲区数BUFFERS 文件句柄控制块数FILES 设备驱动程序DEVICE等 当可安装的设备驱动程序依次加载时 调用相应的初始化功能 确定设备的状态并返回所占用的内存变量 然后将其连接到设备中 处理完CONFIG SYS文件后 关闭所有打开的文件句柄 并为常驻设备驱动程序CON AUX和PRN分配0 4头5个句柄 将这些句柄号提供给标准输入 标准输出 标准错误 标准辅助和标准列表设备 以便DOS或应用程序随时使用它们而不必现打开 SYSINIT完成所有的初始化工作之后 便释放所占空间 转到COMMAND COM的初始化程序 6 COMMAND初始化程序该程序完成以下工作 对常驻的中断22H 23H 24H和27H的例程重新设置向量入口供DOS系统使用 检查自动批处理文件AUTOEXEC BAT是否存在 若存在则执行其中每条命令 执行完成后显示DOS提示符 若不存在 则显示日期和时间提示 等待用户输入指定的日期和时间 然后出现系统提示符A 或C 表明DOS启动成功 等待用户输入DOS命令 至此DOS启动成功 完成了所有初始化任务 3 DOS引导记录DOS引导记录位于软盘的0面0道1扇区 硬盘在DOS分区的逻辑0扇区上 DOS引导记录由以下3部分组成 1 软 硬 盘I O参数表 表长19字节 从引导扇区的0字节偏移0BH处开始 分别记录每扇区字节数 2B 每簇的扇区数 1B 保留扇区数 2B FAT表个数 1B 根目录项数 2B 总扇区数 2B 介质标志 1B 每个FAT所占扇区数 2B 每道扇区数 2B 磁头数 2B 隐藏扇区数 2B 2 软 硬 盘基数表 表长11字节 从引导扇区的0字节偏移21H处开始 3 引导记录块 DOS引导记录块的功能是检查磁盘根目录下是否存在两个系统文件 存在则加载到内存指定区 并把控制权交给BIOS模块 否则显示相应的出错信息 4 DOS文件系统DOS文件管理主要通过文件目录表FDT 文件分配表FAT和磁盘参数表以及设备驱动程序来实施 1 文件目录表DOS在固定的扇区位置设置FDT 该表具体描述文件名 子目录名和卷标以及有关信息 DOS利用FDT掌握磁盘上每个文件的路径 属性 文件分配 长度 以及建立或修改的具体日期和时间 FDT为每个文件或子目录分配一个目录登记项 目录登记项的记录文件名 8B 扩展名 3B 文件属性 1B 保留区 10B 最后修改时间 2B 最后修改日期 2B 文件起始簇 2B 文件长度 4B 2 文件分配表文件目录表FDT列出了分配给文件的磁盘空间 它后续的空间地址是由文件分配表FAT提供的 文件分配表在文件的存取过程中起着关键作用 为了保险起见 DOS系统在每张磁盘上生成两个完全一样的文件分配表 FAT记录着文件所分配到的位置 磁盘上的存储空间是以扇区为单位 但是操作系统对磁盘的最小分配单位是簇 每簇是一个或多个扇区 5 DOS的程序加载过程DOS加载程序是由系统功能中的执行功能 EXEC 来完成的 利用COMMAND COM命令处理程序解释用户输入的命令并执行之 COMMAND COM命令处理程序可以解释如下三种用户命令 内部命令 外部命令和批处理文件 1 COMMAND处理命令的过程当DOS系统启动或系统复位后 屏幕上出现DOS提示符表明COMMAND COM已处于开工状态 等待用户输入命令 COMMAND COM处理命令过程如下 首先判断用户输入的命令是否正确 如果是内部命令 则转去执行COMMAND暂驻区的相应过程 执行结束返回到DOS提示符 否则判断是否为当前目录 如果当前执行的命令不在当前目录下 则执行PATH命令搜索指定的目录 找到后判断要执行的是 COM类或 EXE类命令 如果是在当前目录下则不要搜索目录 直接判断是 COM还是 EXE命令 如果在搜索过程中 在指定目录下未找到 COM文件或 EXE文件 再判断是否为批文件 如果三类文件都不是时 显示提示信息 BadCommandorfilename 若找到一个批处理文件 则转入COMMAND暂驻区的批处理程序 解释执行该批文件中每条命令 当搜索到一个 COM或 EXE文件时 COMMAND便调用EXEC子功能加载该文件并予以执行 当一个外部命令执行时 它几乎控制系统的全部资源 执行完毕后调用DOS结束功能 或释放所有内存 或程序驻留 然后再返回到DOS的提示符状态 2 EXE文件的加载由LINK连接程序生成的 EXE型文件是以特殊结构存贮在磁盘上 当它被EXEC子功能加载时 除了要设置程序前缀PSP外 还要依据一个 文件头 指出的若干信息进行段重定位 同时 对各个内部寄存器也赋以初始化值 最后从DOS系统中接过控制权执行程序 在 EXE文件的程序终止退回到DOS时 其所占的内存空间将全部释放 除非要求驻留内存才释放部分空间 由于 EXE文件的这种特殊结构 连接程序LINK根据被连接的目标模块的不同 连接参数要相应地生成一个 重定位信息表 并将其安装在程序的前头 所以称 重定位信息表 为 文件头 文件头的大小依程序加载的段的指令条数而变化 通常是512字节的整倍数 文件头内的重定位表里放着所有需要重定位的地址 除此之外 文件头内还有许多信息供DOS在装入过程中使用 通过这些信息可以直接或间接得到以下内容 EXE文件标志位 文件总长度 所需内存大小 堆栈起始地址等重要信息 3 COM文件的加载COM文件长度被限制为64KB的一个段长 因此就不存在段重定位过程 也没有文件头 文件的结构紧凑 装入的速度快 一个 COM文件具有如下结构特点 该程序只能设置一个段 且不准建立堆栈段 该程序的长度小于64KB 该程序必须预留100H空间 且在位移100H处是一条可执行指令 该程序被加载的起始标号必须由END语句说明为开始地址 若 COM文件是由几个不同的目标模块连接生成的 则要求所有目标模块必须具有同一代码段名和类别名 CLASS 且赋予公共属性 而主模块应具有100H的入口指针并优先连接 该程序中的子程序必须具有近过程属性 NEAR COM文件的加载过程是这样的 通常 一个 COM文件的内存映象存于磁盘上 它不附加任何定位信息 因此 只需要在当前可用内存空间的最低端建立一个相应的程序段前缀PSP 然后紧靠PSP的上方将 COM文件装入 并把控制装到PSP 100H处 即可通过EXEC子功能加载 COM文件 这就说明了 COM文件的结构为何要留100H空间并在位移100H处必须有一条可执行指令 6 DOS的中断系统尽管病毒种类繁多 形式各异 但是它们大多数都是通过修改中断向量来达到繁殖和传染目的的 因此有必要对DOS的中断系统做一个大概的了解 中断是指计算机的CPU在执行程序的过程中 由于某种原因 暂时停止正在执行的程序 转去执行临时发生的事件 即执行中断服务程序 中断服务程序执行结束 再转回去执行正常的程序 1 常见的中断原因有 用户希望的请求 如从某个设备上输入或输出 未预料的各种错误 如在计算过程中出现溢出等 DOS的中断可分为3种类型 来自外部硬件的外中断 来自内部硬件的内中断和来自中断指令的软中断 DOS的软中断包括几大类 这些中断可供系统和应用程序调用 它们是 程序结束中断 中止中断 严重错误处理中断 绝对磁盘读写中断 系统功能调用 假脱机打印处理 2 中断向量表为了提高响应中断的速度 PC机采用向量中断的处理形式 即对应每一中断类型在特定位置上放置一个中断向量 该向量是中断服务程序的入口地址 这样 所有的中断就组成了一张中断向量表 在PC机中 最多允许有256级中断 由于中断调用通常都是段间的调用 因此一个中断向量包括4个字节 段地址 偏移量 这样 256级中断占用了1KB空间 位置在内存的最低端 即0 3FFH 中断向量表是中断类型号和相应的中断处理子程序入口地址之间的连接表 中断向量表占用内存的0000 0000H到0000 03FFH之间的1KB地址空间 中断向量共有256个 在这些中断中 系统规定 0 4号中断是CPU专用中断 8 0FH是8级硬中断 5号中断和10H 1AH中断是基本外部设备的I O驱动程序和BIOS中调用的有关程序 1BH 1CH中断由用户设定 1DH 1FH是三个数据区 20H 3FH中断由DOS系统调用 40H以后的中断类型由用户程序使用 其中一些中断号被操作系统保留使用 3 中断响应过程CPU在取得中断信息后 通常要做几项工作 保护断点现场以便处理完中断程序后准确地返回到被中断处 继续执行原来的程序 根据中断类型号由中断向量表中取得中断处理程序入口地址 运行中断处理程序 处理完中断子程序后 恢复中断时的现场环境 继续执行原来被中断的程序 4 计算机病毒经常使用的中断多数病毒经常使用磁盘服务中断和时钟中断 INT13H是ROMBIOS软中断 该中断的向量地址为0000 004CH 0000 004FH 在中断处理程序的入口处测试DL 若DL值小于80H 则对软盘操作 若大于或等于80H 则对硬盘操作 具体功能号放置在AH中 病毒常利用的功能是与此相关的几个参数 AH 功能号 AH 02时读磁盘 AH 03时写磁盘 AH 读 写扇区数 软盘 8 硬盘 128 DH 磁头号 软盘0 1 硬盘0 7 DL 驱动器号 软盘0 1 硬盘80 81H CH 扇区号 软盘1 9 硬盘1 17 ES BX 读 写缓冲区地址 INT25H INT26H磁盘逻辑扇区读 写中断 是专门用来对磁盘扇区进行绝对读 写操作的两个中断 INT1CH间隔时钟中断是一个伪中断 其服务程序仅有IRET 中断返回 一条指令 该中断由定时器在修正 日历计数后 每55ms调用一次 利用INT1CH这个特性 可以修改其中断向量指向用户进程而使用户进程每55ms被调用一次 INT8H时钟中断是ROMBIOS硬中断 其向量地址为0000 0020H 0000 0023H 该中断处理来自系统时钟8253通道0的中断 每秒钟发出18 2次中断 每次间隔时间约55ms 每中断一次 日历计数低位加1 中断65535次正好是1小时 当计满24小时后 时钟数据被置0重新计数 计算机病毒程序经常利用INT8H每隔55ms中断一次的特点将病毒程序的表现部分引入到INT8H服务程序之前 使之在满足条件时连续执行 INT10H屏幕显示中断 向量地址为0000 0040H 0000 0043H 该中断提供有关屏幕显示方式选择 光标控制 图形滚动和设置字符属性等20个子程序 这些子程序通过设置AH调用号来调用 许多病毒程序都是通过INT10H来达到显示的目的 如 雨点 病毒 大量调用INT10H 使屏幕上的ASCII字符像雨点样纷纷下落 形成 雨点 INT20H程序正常结束中断是DOS软中断 其向量地址为0000 0080 0000 0083 病毒程序通过修改INT24H中断向量设置新的错误程序 如 黑色星期五 等病毒在向可执行文件传染病毒时 首先将系统的INT24H中断屏蔽起来 不显示此时的读写操作中的任何错误信息 以使病毒的传播过程隐蔽 INT21H系统功能调用中断是一个功能众多 使用方便的系统服务程序 它提供了0 63H共84个子功能程序 是操作系统的内核模块IBMDOS COM的主要组成部分 其中部分功能有 字符输入输出 日期和时间 内存分配 网络功能调用 读取设置中断向量 文件操作 磁盘控制等 计算机病毒充分利用了中断程序的强大功能调用 以达到其各种目的 所以对中断知识的了解和熟练掌握是分析判断病毒存在与否的重要途径 4 2 2常见DOS病毒分析1 引导记录病毒 并不一定是只有可引导的磁盘才能传播引导记录病毒 所有软盘在格式化期间都创建了引导记录程序 如果一个磁盘有引导记录病毒 当计算机要从这个软盘或硬盘引导时 病毒就被激活 甚至计算机不能从感染的磁盘启动时 它也运行自举例程 这正是病毒激活所需要的 就像驻留程序一样 大多数引导记录病毒在内存中要安装自己 并且把自己挂到计算机的BIOS和操作系统提供的各种系统服务中 只要计算机是开着的 病毒在内存中就在活动 就可以通过感染访问计算机的软盘来不断传播 1 软引导记录病毒寄生在软盘引导记录的病毒称为软引导记录病毒 该病毒除了可以感染软盘引导记录外 还可以感染硬盘的主引导区或活动分区引导记录 软盘作为病毒的载体 使病毒能够从一个硬盘传播到另一个硬盘 在病毒把它自己放到硬盘上之后 又不可避免地感染其他的软盘 软引导记录病毒在系统重置期间获取计算机的控制 在启动过程中 大多数PC的BIOS都要确定软驱中是否有软盘以及计算机是否可以从这个软盘中配置引导 如果BIOS在驱动器中找到软盘 它就认定用户想要从这个盘引导 在它定位磁盘后 BIOS就会把软引导记录装入计算机内存 并执行自举例程 在染毒的软盘中 BIOS装入引导记录是经过病毒感染的自举例程 而不是正常的自举例程 在引导期间 BIOS把对计算机的控制完全给予病毒程序而不是正常的自举程序 当控制传给病毒之后 它就会得到对计算机上所有资源独有的访问权 如果在软盘上有操作系统的话 就不会被装入 也不会防止病毒的行为 大多数软引导记录病毒在引导过程中要把自己作为内存驻留程序装入 通过这种方式 病毒就可以在计算机操作期间监视所有磁盘请求 并且任意感染其他软盘 所有PC都包含一块保留的内存区域 称为BIOS数据区域 BDA 在控制传送给自举例程之前 BIOS引导程序会使有关配置的信息和计算机的初始状态更新BDA DOS依赖于存储在BDA内存中的信息正确地使用计算机的内存和外设 几乎所有的软引导记录病毒都利用DOS对BDA的依赖性 更新它的内容以把自己安装到内存中 对于引导记录病毒 DOS中最重要的域是 TotalMemoryinkilobytes 域 它指定操作系统可以使用多少常规内存 通常是640KB 使用这个域确定有多少内存可以安全地分配给自己和DOS应用程序 软引导记录病毒通过减少这个域中的数值为它自己在内存中的例程和数据保留空间 例如 病毒要为它自己保留2KB内存 就把这个数字减少到638 当DOS装入时 就会发现只有638KB可供使用 并且不会读取 修改或更新最后几KB内存 然后病毒就可以使用这块内存 而不用担心被破坏 在病毒通过更新BDA为它自己保留了内存之后 它把自己移到新保存的内存中 并且试图挂到直接磁盘系统服务中 计算机的ROM BIOS中包含磁盘服务例程 DOS通过调用这些例程从软盘或硬盘读取数据 DOS对这些服务的依赖为病毒的激活和感染其他磁盘提供了简单 方便的方法 当操作需要请求一个服务时 它就会在中断向量表INT中查找服务提供者的地址 然后确定把它的请求发送到哪里 病毒通知操作系统它现在是ROMBIOS磁盘服务提供者的代理 所有向计算机磁盘读写请求都发送给病毒 而不是原来的ROMBIOS磁盘服务 以后当操作系统发出一项系统服务请求时 先查找INT 接下来病毒检查请求 如果是它所需要的 就感染被访问的软盘 当病毒完成破坏之后 再把请求重定向给原来的ROMBIOS服务 以完成正确的服务 当病毒更新INT并把自己作为磁盘服务提供者之后 大多数软引导记录病毒要确定计算机上是否带有硬盘 如果带有硬盘 病毒就会试图感染硬盘的主引导记录或活动分区引导记录 这样 当计算机下次通过硬盘重新启动时 病毒就可以把自己安装到内存中并感染其他软盘 软引导记录病毒要完成其工作 就必须从软盘上得到原来的软引导记录 并且启动原来的引导过程 好像没有病毒一样 这非常重要 因为如果软引导记录病毒把自己安装到内存中 感染了硬盘 并且导致软盘启动失败 它很快就会被发现并清除 大多数软引导记录病毒一有机会就要感染磁盘 如果一块感染的软盘在驱动器A 中 病毒的第一个机会是在系统软盘引导期间 几乎所有的软引导记录病毒都要感染硬盘的主引导记录或活动分区引导记录 如果病毒不驻留内存 仅访问一块被感染的磁盘是不会引起广泛感染的 除非用被感染的软盘引导 如果病毒不能执行 它就不会感染硬盘或安装自己作为驻留的服务提供者 如果计算机已经被感染而且病毒已经作为驻留的服务提供者安装 在病毒驻留时访问的软盘可能会被传染 只有当请求磁盘服务时才感染新的软盘 这样做对病毒是有利的 最重要的是如果请求使用软盘 可能驱动器已经就有一个软盘 不会因为无原因的访问软驱动作而暴露病毒的可疑操作 其次 病毒可以在BIOS磁盘服务提供者为正常的磁盘请求提供服务后立即暗中感染软盘的引导记录 感染过程很快 因为用户最可能请求磁盘活动 出现磁盘旋转就有了合理解释 通过这种方式 病毒就会有效地传播到新的软盘而不被发现 在病毒感染软盘之前 它必须确定磁盘是否已经被感染 大多数时候病毒会把目标软引导记录装入内存并与它自己比较 如果病毒确定目标软盘没有被感染过 就会进行感染 并把原来的软引导记录保存到软盘中的另外一个扇区 这样如果用户要从这个磁盘引导 病毒就可以正确地启动驻留在这个磁盘上的操作系统 当病毒把一个被感染的自举例程插入软引导记录 并且把原来的软引导记录的拷贝存储在磁盘中的某个地方时 它可能覆盖一些数据 许多病毒会覆盖根目录结构的最后一个扇区 如果这个扇区正在使用 存储在这个扇区的任何文件目录条目都会被破坏 其他引导病毒把原来软引导记录的一份拷贝存储在软盘的最后 如果软盘满了 病毒就会覆盖某个文件的一个扇区 从而至少损坏512B的数据 不幸的是在病毒覆盖了软盘上某个扇区后 使用传统的磁盘工具无法恢复该扇区的内容 2 主引导记录病毒几乎所有的软引导记录病毒都会感染硬盘的主引导记录 MBR 或硬盘的活动分区引导记录 分区引导记录病毒是另一种形式的软引导记录病毒 它驻留在逻辑硬盘分区的引导记录中 主引导记录病毒也像软引导记录病毒一样 在被激活前 它要在引导时被装入并执行 在硬盘引导期间 ROMBIOS引导程序从连接到计算机的基本硬盘中装入引导程序 然后验证主引导区在扇区的最后是否有正确的特征标记 如果正确的话它就把控制转给主引导记录的自举程序 在一个已感染的主引导记录中 病毒感染的自举例程会代替原来的自举例程 在ROMBIOS引导程序把控制传送给主引导记录自举程序的时候 病毒就得到控制权 一般的主引导记录病毒把它自己安装为内存驻留服务提供者 就像软引导记录病毒一样 病毒把第一个物理硬盘的主引导区装入内存 然后它检查主引导记录的自举例程是否已经感染 如果已被感染 病毒就会终止感染过程 开始引导 如果未被感染 它就会更改主引导扇区 覆盖已有的主引导记录 更改的主引导记录通常包含带毒的自举例程以及原来的主引导记录的分区表 一般的主引导记录病毒也需要把原来主引导扇区的一份拷贝保存到硬盘的某个地方 以后在计算机从已感染的硬盘引导并且病毒把它自己安装为驻留的服务提供者之后 病毒就要装入原来的主引导记录并把控制传送给这个主引导记录的自举程序 然后 原来的主引导记录的自举程序装入活动分区的分区引导记录 进行正常引导 对于大多数硬盘来说 磁盘分区软件 FDISK 在硬盘主引导记录之后会留下一个未用磁道的扇区 病毒选择其中的一个扇区存放原来的主引导记录 因为这些扇区在大多数系统中是不使用的 主引导记录病毒把原来的主引导记录存放在硬盘的第一磁道的某个地方 因为病毒没有检查就假设这部分空间可以用于它自己的目标 不幸的是 许多不同的磁盘管理和访问控制包都把它们自己的自举程序和数据存放在这一区域 如果病毒盲目地把原来主引导记录的一份拷贝保存到这里 它就可能会覆盖磁盘驱动器 在以后的引导中引起系统崩溃 3 火炬病毒火炬病毒是一种典型的系统引导病毒 它对硬盘和软盘的引导扇区进行传染 进而占用整个扇区 当病毒发作时 屏幕上出现5个火炬 使主引导扇区信息丢失 引起硬盘瘫痪 系统完全处于病毒的控制之中 硬盘数据也被破坏 当使用含有火炬病毒的软盘或硬盘引导系统时 驻留在引导扇区中的病毒程序被系统ROMBIOS加载到0 7C00处 并获得对系统的控制权 病毒首先使内存总量减少1KB 并计算出系统内存高端的段地址 然后把INT13H中断入口设在病毒程序段偏移0013H处 接着将全部病毒程序移到内存的高端 完成病毒的安装 最后 病毒程序再将原系统正常的引导扇区内容调到内存的0 7C00H处 并转去执行正常的系统引导 在用户看来系统已正常引导 丝毫觉察不出病毒的入侵 火炬病毒的传染过程是这样的 用软盘启动系统时 病毒把硬盘的主引导扇区读入内存 检查主引导扇区的1BCH处有无病毒标记 如果有 则放弃传染 若没有 则将病毒标记写到1BCH处 然后将分区信息写到病毒尾部的46B 利用这保留的分区信息 病毒仍然能够启动系统 但硬盘分区表的信息却永久地丢失了 病毒程序驻留内存并成功地启动DOS后 将修改中断向量INT13H 此时所有的读写操作都首先到病毒的传播部分 若执行的是读操作 其软盘引导扇区的1BCH处无病毒标记 则进行传染 病毒的破坏方式是对硬盘的主引导扇区直接覆盖 而对软盘引导扇区的内容只进行迁移 运行中 病毒首先取出系统的日期和时间进行判断 如果满足条件则进行破坏 病毒主要是破坏软盘和硬盘的引导扇区 2 文件病毒文件病毒使用可执行文件作为传播的媒介 使用DOS的 COM EXE和 SYS文件中的一种或多种作为攻击目标 1 COM文件的感染 COM文件格式是DOS可执行文件格式中最简单的一种 装入过程也最简单 DOS直接
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年建筑行业工程师资格认证考试指南及模拟题集
- 电力供应基础知识培训总结
- 2025年电力工程师中级实操技能考试指南与模拟题集
- 2025年初级新媒体运营人员面试实战指南及预测题
- 2025年厨师长中级面试技巧及实操模拟题答案
- 2025年初级设计师面试攻略与模拟题详解
- 2025年高考数学复习冲刺卷及答案详解
- 2025年新员工入职前培训资料仓库管理面试模拟题及解答指南
- 2025年特岗教师招聘考试英语语法与写作模拟题详解
- 2025年特岗教师招聘考试初中数学命题趋势分析
- DB31/T 375-2022柑橘栽培技术规范
- 马克思主义与社会科学方法论课后思考题答案
- 内蒙古交通集团招聘储备人员真题2024
- 2025重庆对外建设(集团)有限公司招聘10人笔试参考题库附带答案详解
- 中医八纲辩证
- 2025年度中国对非洲二手车出口及非洲重点进口国分析白皮书-特易资讯-2025
- 马凳筋专项方案
- 厂房临时用电施工方案
- 成人术后口渴症状评估与管理专家共识
- 模块化建筑快速搭建系统行业跨境出海战略研究报告
- 公园休闲座椅施工方案
评论
0/150
提交评论