????比年来,新的盘算推算机病毒发展格外嚣张,而且这些新病毒越发隐蔽、庞杂,某些新病毒所具有的破坏性更大,所带来的损失无法估计。这表白盘算推算机病毒的防治尤为紧要,同时所面向的表象也越发严厉。本文就在带毒景况下检测扫除病毒的方法问题提出一点体会与主张。 ???? ????一、带毒景况下检测扫除病毒的道理 ???? ????目前在我国时髦的病毒寻常可分为引导型病毒、文件型病毒和夹杂型病毒。引导型病毒的特征是它寄生在软盘的DOS引导扇区和硬盘的主引导记载或DOS引导区中,开机时由盘算推算机自动读入内存中执行。文件型病毒则将自己附加在可执行文件上,在执行被教化法度模范时,病毒结果得到抵制权,举办驻留或破坏等活动。夹杂型病毒既能教化引导区也能教化可执行文件,具有更强的习染性。常用的杀毒软件有KV300、公安部的KILL、美国McAfee公司的SCAN和CLEAN等,这些软件各有自己的益处。但是在一个带毒的景况下,也即在病毒已经驻留在内存中的状态下,这些杀毒软件都存在不敷并或许带来极少不良的成就。 ???? ????当编制教化一种已知病毒时,KILL和SCAN觉察内存中有病毒后,寻常是绝交不停执行,并恳求用清洁的盘从头开动。KV300发出类似的告诫讯息,但提供应用户一个抉择的时机,以确定是否不停执行,很分明,若用户抉择不停,所带来的成就是不可预期的。 ???? ????当编制教化一种未知病毒时,三种软件在未觉察内存中有已知病毒后,都如果编制中无病毒,忠实地执行检测或扫除成效。事实上,这个未知病毒或许会在检测时习染盘中通盘的可执行文件。 ???? ????由上面的磋议可知,清查病毒时只有从一概清洁的盘开动,而且恳求杀毒软件自己无毒,才可能保证稳操胜券。但是,由于人们互相拷贝各种软件,很大程度上帮忙了病毒的散布,在很多状态下,要得到一张清洁的开动盘很不便利,而且应付极少对盘算推算机编制清楚不是很多的运用者来说,他们根柢无法判定一张开动盘是不是清洁的。于是,探究在带毒景况下举办病毒检测和扫除的方法是很有道理的。 ???? ????二、带毒景况下检测扫除病毒的原理 ???? ????应付一个驻留内存伺机举办习染和破坏的病毒来说,寻常都要截取某些间断向量,当其他法度模范挪用这些间断时,病毒从头博得抵制权,判定是否满足特定的条目,满足则激活习染或破坏部分,在条目不满足的状态下寻常是挪用原间断服务法度模范,达成正常的编制成效。 ???? ????引导型病毒常接受INT13H、08H、10H等间断;文件型病毒则常接受INT21H、24H、25H、26H、1CH、13H、10H等间断。 ???? ????既然病毒是经过议定接受间断来得到习染和破坏的时机,那么我们是否有方法找回被病毒接受的间断服务法度模范的地址,从而杀毒软件能够直接挪用原间断,避免激活病毒?笔者以为这是或许的,由于病毒在接受间断后,寻常只对读写操纵、文件操纵和执行等子成效挪用感趣味,应付其他极少成效挪用,病毒但是简略单纯地挪用原间断服务法度模范举办解决,并往往运用下列指令举办挪用: ????jmp xxxx:xxxx ????call xxxx:xxxx ????jmp far ptr cs:[xxxx] ????call far ptr cs:[xxxx] ???? ????以INT21H为例,我们能够挪用取DOS版本号的子功能3306H,对总共挪用过程举办单步跟踪,并如果病毒驻留的段地址与INT21H原间断段地址是分别的,要是挪用过程中CS产生改造,我们把每次CS改造后执行的第一条指令的地址都记载下来,那么INT21H历来的间断地址也肯定在其中。 ???? ????但记载的地址不止一个,事实哪个是我们所要找的呢?这边我们能够如果病毒在调原间断服务法式时把各个寄放器(指AX、BX、CX、DX、SI、DI、DS、ES)都设置成我们挪用时所设置的值,同时真正的间断服务法式返回时又会改造寄放器的值,这个如果在绝大无数情况下都是正确的,从该如果解缆,只需在各个寄放器值没有改造的情况下,记载下每次CS改造后的第一条指令的地址,那么在间断返回后,记载中的迩来一个地址便是所需找的原间断地址。必要指出的是,要是内存中又有其他驻留法式也接收了INT21H,所找到的地址同样绕过了这些驻留法式。 (转载请注明出处:http://www.njmy88.com/dalianyouxi/20120113/2297.html) |