首页 百科知识 病毒的一般构成与工作机理

病毒的一般构成与工作机理

时间:2023-06-17 百科知识 版权反馈
【摘要】:9.2.1 病毒的一般构成与工作机理1.计算机病毒的一般构成一般来说,计算机病毒包括三大功能模块,即引导模块、传染模块和破坏/表现模块。这种传染方式叫做计算机病毒的被动传染。出于有些病毒的该模块并没有明显的恶意破坏作用,而只是进行一些视屏、发声和自我表现作用,故该模块有时又称表现模块。),而小球病毒的破坏模块,一般不会在启动系统时就

9.2.1 病毒的一般构成与工作机理

1.计算机病毒的一般构成

一般来说,计算机病毒包括三大功能模块,即引导模块、传染模块和破坏/表现模块。其中,后两个模块各包含一段触发条件检查代码,它们分别检查是否满足传染触发的条件和是否满足破坏/表现触发的条件,只有在相应的条件满足时,病毒才会进行传染或表现/破坏。必须指出的是,不是任何病毒都必须包括这三个模块。例如,维也纳病毒没有引导模块,巴基斯坦病毒没有破坏模块。

2.计算机病毒的引导机制

引导模块也就是病毒的初始化部分,它的作用是将病毒由外存引入内存,使后两个模块处于活动状态,为传染部分做准备。

病毒程序将自身的一段程序代码保留在内存中有两种手段,一种是通过程序驻留;另一种方法是将病毒代码移到内存最高端,然后把内存大小指示单元减少几K字节,以欺骗DOS操作系统,使之不会再使用最高端的病毒代码所占用的空间。

病毒的引导模块除了把病毒程序代码引入内存外,还有另外两个功能,其一是对内存的病毒代码采取保护措施,使之不会被覆盖;其二是对内存中的病毒代码设定某种激活方式,使之在适当的时候取得执行权。

并非所有病毒都包括引导模块,如果动态病毒是瞬时的,也就是说病毒代码运行完以后就全部退出内存,那么这种病毒是不含引导模块的。它利用DOS本身的加载机制使病毒取得瞬间动态,而这一瞬间,动态病毒执行了传染和破坏两个模块。显然,这种病毒的隐蔽性更强,正因为内存中的病毒停留时间是如此之短,所以用户和防病毒程序几乎都无法察觉。

3.计算机病毒的传染机制

传染是指计算机病毒由一个载体传播到另一个载体,由一个系统进入另一个系统的过程。这种载体一般为磁盘或磁带,它是计算机病毒赖以生存和进行传染的媒介。但是,只有载体还不足以使病毒得到传播。促成病毒的传染还要分为两种情况:其一,用户在进行拷贝磁盘或文件时,把一个病毒由一个载体复制到另一个载体上,或者是通过网络上的信息传递,把一个病毒程序从一方传递到另一方。这种传染方式叫做计算机病毒的被动传染。其二,计算机病毒是以计算机系统的运行以及病毒程序处于激活状态为先决条件,在病毒处于激活的状态下,只要传染条件满足,病毒程序能主动地把病毒自身传染给另一个载体或另一个系统,这种传染方式叫做计算机病毒的主动传染。

对于病毒的被动传染而言,其传染过程是随着拷贝磁盘或文件工作的进行而进行的,而对于计算机病毒的主动传染而言,其传染过程是在系统运行时,病毒通过病毒载体即系统的外存储器进入系统的内存储器,常驻内存,并在系统内存中监视系统的运行。在病毒引导模块将病毒传染模块驻留内存的过程中,修改系统中断向量入口地址(例如INT 13H或INT 21H),使该中断向量指向病毒程序传染模块,一旦系统执行磁盘读写操作或系统功能调用,病毒传染模块就被激活,传染模块在判断传染条件满足的条件下,利用系统INT 13H读写磁盘中断把病毒自身传染给被读写的磁盘或被加载的程序,也就是实施病毒的传染,然后再转移到原中断服务程序执行原有的操作。

计算机病毒的传染方式基本可分为两大类,一是立即传染,即病毒在被执行到的瞬间,抢在宿主程序开始执行前,立即感染磁盘上的其他程序,然后再执行宿主程序;二是驻留内存并伺机传染,内存中的病毒检查当前系统环境,在执行一个程序或DIR等操作时传染磁盘上的程序,驻留在系统内存中的病毒程序在宿主程序运行结束后,仍可活动,直至关闭计算机。

文件型病毒的传染过程如下:

当执行被传染的.COM或.EXE可执行文件时,病毒驻入内存。一旦病毒驻入内存,便开始监视系统的运行。当它发现被传染的目标时,进行如下操作:

(1)首先对运行的可执行文件特定地址的标识位信息进行判断是否已感染了病毒;

(2)当条件满足,利用INT 13H将病毒链接到可执行文件的首部或尾部或中间,并存入磁盘中;

(3)完成传染后,继续监视系统的运行,试图寻找新的攻击目标。

文件型病毒通过与磁盘文件有关的操作进行传染,主要传染途径有:

(1)加载执行文件

文件型病毒驻内存后,通过其所截获的INT 21中断检查每一个加载运行可执行文件进行传染。

加载传染方式每次传染一个文件,即用户准备运行的那个文件,传染不到那些用户没有使用的文件。

(2)列目录过程

由于病毒加载传染方式每次传染一个文件速度较慢,于是后来造出通过列目录传染的病毒。在用户列硬盘目录的时候,病毒检查每一个文件的扩展名,如果是可执行文件就调用病毒的传染模块进行传染。

这样病毒可以一次传染硬盘一个目录下的全部可执行文件。DIR是最常用的DOS命令,每次传染的文件又多,所以病毒的扩散速度很快,往往在短时间内传遍整个硬盘。

(3)创建文件过程

创建文件是DOS内部的一项操作,功能是在磁盘上建立一个新文件。已经发现利用创建文件过程把病毒附加到新文件上去的病毒,这种传染方式更为隐蔽狡猾。因为加载传染和列目录传染都是病毒感染磁盘上原有的文件,细心的用户往往会发现文件染毒前后长度的变化,从而暴露病毒的踪迹。而创建文件的传染手段却造成了新文件生来带毒的奇观。好在一般用户很少去创建一个可执行文件,但经常使用各种编译、连接工具的计算机专业工作者应该注意文件型病毒发展的这一动向,特别在商品软件最后生成阶段严防此类病毒。

4.计算机病毒的破坏机制

破坏/表现模块实施病毒的破坏作用,如破坏被传染系统或者在被传染系统的设备上表现出特定的现象等,前两个模块是为这部分服务的。出于有些病毒的该模块并没有明显的恶意破坏作用,而只是进行一些视屏、发声和自我表现作用,故该模块有时又称表现模块。破坏/表现模块是病毒间差异最大的部分,大部分病毒都是在一定条件下才会触发。

和病毒的传染模块一样,破坏/表现模块也可以在两种时序下运行。它可在第一次病毒代码加载时就运行,也可能在第一次加载时只是由引导模块引入内存,以后再通过某些中断机制触发才运行。举例来说,大麻病毒的破坏/表现模块总是在第一次加载病毒时就触发(即只要启动系统时就会看见“Your PC is now Stoned!”),而小球病毒的破坏模块,一般不会在启动系统时就发作,它必须等整点或半点时,由INT 13H激活发作。

在结构上,破坏/表现模块也类似于传染模块,分为两个部分,一部分判断破坏的条件是否满足,另一部分执行破坏功能。执行破坏功能要求的条件一般会与时钟或时间有关,因而病毒程序员最常修改的中断除了如病毒传染利用的INT 13H、INT 21H外,还有如破坏模块利用的INT 8H(硬时钟中断),INT 1CH(软时钟中断)及INT 1AH(读取/设立系统时间,日期)。常见的触发条件有:黑色星期五(某月的13号正好是星期五);当前时间是整点或半点;病毒进入内存已半小时了等等。理论上说,触发条件还可以用其他逻辑条件,但一般用时钟或时间触发更能反映制造者意图,更易安排其潜伏性和隐蔽性。

5.现代计算机病毒的流行特征

(1)攻击对象趋于混合型

传统病毒一般都是采用传统的设计方式,其代码直观简单,表现形式和外观特性比较明显,诸如总内存数量减少、速度变慢、直观的显示信息、明显的破坏症状等。侵袭系统的病毒一般不外乎引导型和可执行文件型病毒。但是随着反病毒技术的日新月异,病毒编制的日臻巧妙,传统软件保护技术的广泛探讨和应用,当今的计算机病毒在实现技术上有了一些质的变化,病毒攻击对象趋于混合,它们都逐步转向为对可执行文件和系统引导区同时感染,它们在病毒源码的编制、反跟踪调试、程序加密、隐蔽性、攻击能力等方面的设计都呈现了许多不同一般的变化。

(2)反跟踪技术

当用户或反病毒技术人员发现一种病毒时,首先要对其进行详细分析解剖,一般都是借助DEBUG等调试工具对它进行跟踪剖析。为反动态跟踪,目前的病毒程序中一般都嵌入一些破坏单步中断INT 1H和断点设置中断INT 3H的中断向量程序段,从而使动态跟踪难以完成。还有的病毒通过对键盘进行封锁,以禁止单步跟踪。

病毒代码通过在程序中使用大量非正常的转移指令,使跟踪者不断迷路,造成分析困难。一般而言,CALL/RET,CALL FAR/RET,INT/RET命令都是成对出现的,返回地址的处理是自动进行的,不需编程者考虑,但是近来一些新的病毒肆意篡改返回地址,或者在程序中将上述命令单独使用,从而使用户无法迅速摸清程序的转向。

(3)增强隐蔽性

病毒通过各种手段,尽量避免出现使用户容易产生怀疑的病毒感染特征。

①避开修改中断向量值

许多反病毒软件,都对系统的中断向量表进行监测,一旦发现任何有对系统内存中断向量表进行修改的操作,将首先认为有病毒在活动。因此,为避免修改中断向量表而留下痕迹,有些病毒直接修改中断服务子程序,取得对系统的控制权。病毒采用修改.com文件首指针的方式修改中断服务子程序,首先从中断向量表中动态获得中断服务子程序入口,然后将该入口处开始3~5字节内的指令内容保存到病毒体工作区,最后修改入口处指令,使其为转向相应的病毒中断服务子程序入口的转移指令,在执行修改后的子程序后,再由病毒控制转向原正常的服务子程序入口。如DIRⅡ病毒对INT 21H中断向量的控制就采用了类似的手法。

②请求在内存中的合法身份

病毒为躲避侦察常采用以下方法获得合法内存:通过正常的内存申请进行合法驻留,如DONG病毒采用向内存高端申请2 000字节的正常空间移入病毒体;通过修改内存控制链进驻内存;驻留低端内存,如DIRⅡ病毒驻留在用户可用内存空间的低端,所以单从内存的使用情况上很难区分正常程序和病毒程序。

③维持宿主程序的外部特性

病毒截取INT 21H中断,控制原文件的显示,使已经被感染的程序在显示时不改变原来特征,如长度、修改日期等。病毒也可能截取INT 13H中断,当发现有读硬盘主引导区或DOS分区的操作时,将用原来的正确内容交给用户,以迷惑用户。

④不使用明显的感染标志

病毒不再简单地根据某个标志判断病毒本身是否已经存在,而是经过一系列相关运算来判断某个文件是否感染。

(4)加密技术处理

①对程序段动态加密

病毒采取一边执行一边译码的方法,即后边的机器码是与前边的某段机器码运算后还原的,而用DEBUG等调试工具把病毒从头到尾打印出来,打印出的程序语句将是被加密的,无法阅读。

②对显示信息加密

如新世纪病毒在发作时,将显示一页书信,但作者对此段信息进行加密,从而不可能通过直接调用病毒体的内存映像而寻找到它的踪影。

③对宿主程序段加密

病毒将宿主程序入口处的几个字节经过加密处理后存储在病毒体内,这将给杀毒修复工作带来很大困难。

(5)病毒繁衍不同变种

目前病毒已经具有许多智能化的特性,如自我变形、自我保护、自我恢复等。在不同宿主程序中的病毒代码,不仅绝大部分不相同,且变化的代码段的相对空间排列位置也有变化。病毒能自动化整为零,分散潜伏到各种宿主中。对不同的感染目标,分散潜伏的宿主也不一定相同,在活动时又能自动组合成一个完整的病毒。如经过多态病毒感染的文件在不同的感染文件之间相似性极少,使得反病毒检测成为一项艰难的任务。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈