引导型病毒的机理和解析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
引导型计算机病毒的机理和解析
摘要:引导型病毒是什么,其技术发展,优缺点,特点以及来源,引导型病毒的机制,解析源于DOS高级版本以及Windows 9X的新型引导型病毒的结构,并提出引导型病毒的检测和防治方法。
关键词:引导区硬盘内存新型引导型病毒病毒结构防治
计算机病毒是指在计算机程序中插入的破坏计算机功能或数据,影响计算机使用并且能够自我复制的一组计算机指令或程序代码。
计算机病毒具有3个基本特性:感染性、潜伏性和表现性。
换句话来说计算机病毒是人为的特制程序或指令程序,具有自我复制能力,并有一定的潜伏性、特定的触发性和很大的破坏性。
计算机病毒的种类繁多,按感染方式分为:引导型病毒、文件感染病毒和混合型病毒。
引导型病毒感染硬盘主引导扇区或引导扇区以及软盘的引导扇区,如大麻、火炬、BREAK等病毒。
1 引导型病毒
1.1 简介
引导型病毒寄生在主引导区、引导区,病毒利用操作系统的引导模块放在某个固定的位置,并且控制权的转交方式是以物理位置为依据,而不是以引导型病毒寄生在主引导区、引导区,病毒利用操作系统的引导模块放在某个固定的位置,并且控制权的转交方式是以物理位置为依据,而不是以操作系统引导区的内容为依据,因而病毒占
据该物理位置即可获得控制权,而将真正的引导区内容搬家转移,待病毒程序执行后,将控制权交给真正的引导区内容,使得这个带病毒的系统看似正常运转,而病毒已隐藏在系统中并伺机传染、发作。
引导型病毒进入系统,一定要通过启动过程。
在无病毒环境下使用的软盘或硬盘,即使它已感染引导区病毒,也不会进入系统并进行传染,但是,只要用感染引导区病毒的磁盘引导系统,就会使病毒程序进入内存,形成病毒环境。
1.2 计算机启动过程
在分析引导型病毒之前,必须清楚正常的系统启动过程。
上电或复位后,ROM_BIOS的初始化程序完成相应的硬件诊断,并设置ROM_BIOS中断和参数,调用INT19H自举。
注意ROM_BIOS初始化程序已设置了BIOS中断。
对于硬盘启动,自举程序将硬盘物理第1扇(主引导记录)读到内存首址为0:7C00的区域处,开始执行硬盘主引导区程序,找到激活分区,并将该分区首扇(引导区)也读到0:7C00处(自身下移),
然后转移到0:7C00处执行引导记录。
引导软盘启动,设有主引导记录,自举程序直接将A盘引导记录即A盘0面0道1扇区读到内存0:7C00处,执行引导记录。
引导记录引导操作系统,操作系统完成对输入/输出和内核等的初始化后,整个启动过程结束。
1.3 引导型病毒机制
引导型病毒占据主引导扇区或引导扇区的全部或一部分,将分区表信息或引导记录移到磁盘的其他位置,并在文件分配表(FAT)中将这些信息标明为坏簇。
病毒在计算机引导时首先获取系统控制权,将病毒的主要部分调入内存并驻留在内存高端,修改常规内存容量大小字单元[0:413H],将常规内存容量虚假减少,防止以后系统内存调度时覆盖占用内存高端的病毒体。
同时修改某些常用中断的中断向量,使之指向内存高端的病毒程序。
最后一条跳转指令转向主引导记录或引导记录的位置,将控制权交回系统以完成正常的系统启动工作。
以后只要调用这些中断,就会先执行常驻内存高端的病毒体,病毒搜索并感染其他可能有的磁盘,或执行病毒体的表现部分,破坏计算机系统的正常工作。
若不满足激发条件,病毒也可以继续潜伏,将系统控制权交回系统。
引导型病毒是在操作系统引导前就已驻留内存高端。
由于主引导记录和引导记录在系统启动结束后不再执行,因此引导型病毒必须修改中断向量,指向自己,才有被激活已完成感染,潜伏、破坏等功能的机会。
大多数引导型病毒会修改1NT 13H中断,当用户读写磁盘,
如执行DIR、EDIT、Windows中列文件目录等命令时,就会执行1NT 13H,激活病毒体。
2 引导型病毒主要特点:
引导型病毒是在安装操作系统之前进入内存,寄生对象又相对固定,因此该类型病毒基本上不得不采用减少操作系统所掌管的内存容量方法来驻留内存高端。
而正常的系统引导过程一般是不减少系统内存的。
引导型病毒需要把病毒传染给软盘,一般是通过修改INT 13H的中断向量,而新INT 13H中断向量段址必定指向内存高端的病毒程序。
引导型病毒感染硬盘时,必定驻留硬盘的主引导扇区或引导扇区,并且只驻留一次,因此引导型病毒一般都是在软盘启动过程中把病毒传染给硬盘的。
而正常的引导过程一般是不对硬盘主引导区或引导区进行写盘操作的。
引导型病毒的寄生对象相对固定,把当前的系统主引导扇区和引导扇区与干净的主引导扇区和引导扇区进行比较,如果内容不一致,可认定系统引导区异常。
3引导型病毒的优缺点:
引导型病毒的优点:隐蔽性强,兼容性强,一个好的病毒程序是不容易被发现的,通用于DOS和Windows 95操作系统。
引导型病毒的缺点:很多,如传染速度慢,一定要带毒软盘启动才能传到硬盘,杀毒容易,只需改写引导区即可,如:fdisk/mbr,kv200/k。
KV200能查出所有引导型病毒,底板能对引导
区写保护,所以现在纯引导型病毒已很少了。
在各种PC机病毒中,引导区型病毒并不是数量占多数的一类,但引导区型病毒往往具有较强的破坏性。
4传统引导型病毒结构
以引导型病毒感染软盘引导扇区为例,制作病毒母盘的主要步骤及其结构如下:
(1)将A盘0面0道1扇区(引导记录)转移到2扇区,对于DOS系统启动盘,其0面0道2扇区为保留扇区,不会被其他磁盘文件覆盖。
对于Windows 9x启动盘,其0面0道2扇区不是保留扇区,因此应将引导记录转移到磁盘其他位置,如最后的扇区,并在FAT中标注此扇区为坏簇。
在debug下用13H中断1号读功能,将引导记录读到内存,再用2号写功能将引导记录写入0面0道2扇区。
这样该软盘的第2扇区保留一个正常的引导记录。
(2)将病毒代码写入0面0道1扇区,引导记录前3个字节是无条件转移指令,转移到boot程序入口处。
其后63个字节是磁盘驱动器参数表DBD及其它参数,再后是boot程序及有效标志,参数不必修改,病毒代码写到原boot程序处。
以后只要执行磁盘读写命令就会感染A盘。
若满足触发条件,则启动破坏模块。
5 新型引导病毒型病毒结构
DOS 3.x及以上版本,Windows 9X等操作系统在计算机启动过程
中与DOS低版本有所不同,当引导记录引导操作系统时,操作系统在初始化中为了扩充功能,扩展了大多数常用的BIOS中断,并修改了中断向量。
传统的引导型病毒在操作系统加载前就修改了13H等中断向量,使其指向驻留内存高端的病毒体。
而新的操作系统启动时将13H号等中断向量做了修改,不再指向病毒体。
病毒体虽然驻留在内存高端,但永远没有被激活的机会,所以不能进行传染和破坏。
通过对DOS 6.22和Windows 98操作系统引导前后中断向量表内容的比较发现,1A号、5号等少数中断向量没有变化。
BIOS初始化设置中断后,机器每秒自动调用18.2次1AH号中断。
因此新型引导型病毒修改该中断(短时期),新的1AH中断服务程序等待操作系统启动结束后,再修改13H中断,指向病毒体,然后恢复1AH中断。
下面以一个感染A盘的病毒样本为例,解析新型引导型病毒结构。
带毒系统软盘的0面0道1扇区(简称R扇区)存放病毒引导模块和修复后的1AH号中断服务程序。
0面3道12H扇区(简称P扇区)存放正常引导记录。
0面3道11H扇区(简称Q扇区)存放修改后的13H号中断服务程序,并在FAT表中将P、Q扇区标注为坏簇。
(1)病毒引导模块功能
将R扇区内容移到内存高端并驻留;将Q扇区内容读入内存高端驻留;修改1AH号中断向量;读A盘FAT表将P、Q扇区标注为坏簇并写回;将P扇区内容(正常引导记录)读入0:7C00处,转移执行正常的引导记录。
(2)修改后的1AH号中断
由于系统每秒自动调用18.2次1AH中断,因此可以将它作为软件定时器。
修改后的1AH中断服务程序检测对1AH中断的调用次数。
当达到预定次数时,即定时时间到,操作系统已启动完毕,修改13H号中断,然后恢复1AH原来的中断。
(3)修改后的13H号中断
对磁盘进行读写操作的命令一般都调用13H号中断,修改后的13H号中断包括传染模块和破坏模块;先判断是否读写A盘。
若是,且没有病毒感染的标志则将A盘0面0道1扇区和Q扇区,然后执行正常的13H号中断服务程序;若不是读写A盘或A盘有感染标志,则判断是否满足破坏模块的触发条件(可用系统日期、时间或感染次数等),若满足则执行破坏模块,否则执行正常13H中断服务程序。
必须注意的是,在修改后的中断服务程序中读写磁盘时,不能简单地使用INT 13指令来调用13H号原来的中断服务程序,否则会导致死循环。
6 引导型计算机病毒的检测方法
(1)常用的引导型病毒检测方法——特征串判别法。
引导型病毒为了避免重复传染,每种病毒均具有病毒程序自身的标志,当在BOOT扇区中找到病毒程序独特的标志后,就证明磁盘已感染该类操作系统型病毒。
特征代码被用于SCAN、CPAV等著名病毒检测工具中,国外专家认为特征串判别法是检测已知病毒的最简单、开销最小的方法。
此方法是针对在已知病毒特征串的前提下而采用的方法。
具体步
骤如下:
1.启动DEBUG,EXE。
2.将可疑盘的BOOT扇区装入内存。
3.用DEBUG的S命令搜索病毒特征串。
特征代码串具有检测准确、快速、误报警率低、可依据检测结果做杀毒处理等优点。
但它也具有不能检测未知病毒,在网络上效率低等缺点。
(2)内存容量检测法
病毒为了延长其活动时间,以得到更多的传染机会,都要把自己驻留内存,并且使自己占用的内存空间不被用户程序和数据所覆盖,它只能改变系统内存的大小,使DOS“丢失”几K字节的内存,即病毒使DOS的管理范围缩小。
病毒则隐藏在这些“丢失”的单元里,长期起破坏作用。
引导型计算机病毒修改在内存0000;0413处存放的常规内存容量,使病毒代码可以常驻在被减去的那一块高端内存。
另外还有中断向量检测法和首指令检测法。
7 引导型计算机病毒的防治
对引导型病毒的查杀通常有两种方法:
(1)分析具体病毒的特征,根据特征判断当前引导扇区是否感染了病毒,是则清除之。
(2)采用智能方法,综合分析正确引导扇区的特征,对当前引导扇区加以分析判断,认定是否正常,若认为不正常,则设法恢复正常。
以上方法都存在不足,不能清除所有引导型病毒,而智能方法则有可能因误判而造成系统无法启动,对于在主引导扇区中不保留原分区表信息的引导型病毒,智能方法无法清除病毒,因为无法恢复风分区表信息。
这两种方法都要求用无毒软盘启动以防止收到病毒欺骗,因为为了防止其他程序改写病毒占据的引导扇区,有些病毒程序采取了伪装措施,在病毒程序控制下,外部程序对引导扇区的读写被改向到其它扇区,在那里存有被病毒保存的原引导扇区程序。
同一规格软盘的引导扇区在同一操作系统下保持相同,且易于使用工具软件读、写、比较,因而容易发现和清除引导型病毒,而硬盘则由于盘本身的不同规格及不同划分,情况就比较复杂;又由于硬盘引导最为普遍,故以下仅考虑硬盘中引导型病毒的防治。
引导型病毒驻留内存后,磁盘服务功能LNT 13的调用过程是:DOS扩充部分->病毒控制程序->ROM BIOS,因而不能直接从中断向量看出内存是否有引导型病毒,虽然我们可以用DOS工具软件检查内存,会发现病毒驻留内存后常规内存减小,但是我们并不能清除内存中病毒,因为病毒程序夹在DOS扩充部分和ROM RIOS之间。
我们可以设法从盘区占位入手,检查是否被引导型病毒感染。
基本思想是:备份正确的引导扇区,系统运行时随读取引导扇区并与备份数据加以比较,进而发现并清除引导型病毒。
3.1初始化
要想获取引导扇区中的真实内容,关键是要设法跳过病毒程序的控制,这可用过直接调用ROM BIOS的磁盘服务功能来保证。
实现方
法是这样的:制作一张软盘引导盘,并将其引导扇区内容存于特定扇区,另做一个引导程序,该程序负责读取系统启动时的LNT 13中断向量(它是ROM BIOS设定的磁盘服务功能程序入口地址);并保存它,然后调入并执行原来正常的引导程序,完成DOS引导。
系统启动后进行备份工作,将硬盘主引导扇区、BOOT扇区及引导时保存的INT 13中断向量等以文件形式存起来,供以后使用。
3.2诊治
有了备份的扇区数据和可信的INT 13中断向量,就可以进行日常诊治。
先读取备份的文件,然后进行日常诊治。
先读取备份的文件,然后使用ROM BIOS设定的磁盘服务子程序直接读写磁盘,将当前读得的引导扇区与备份的数据加以比较,不一致时,予以报警并用备份数据加以覆盖,清除病毒,然后重新启动计算机系统,以清除内存中的病毒。
病毒的诊治程序可以放在自动批处理中,每次启动系统时执行,也可以在遇到可疑现象时随意执行。
如果在系统中发现了引导型病毒,能立即查杀,如果这个病毒是由混合型病毒产生的,想要知道那个文件释放出引导型病毒,可以在执行每个命令文件后执行一次诊治程序,就能发现病毒来自哪个文件,进而作进一步处理。
根据上述思想,在多种机型上用多种不同的引导型病毒进行了实验,均取得满意的结果。