病毒漫谈──1150
网络与通信
文件型病毒是计算机病毒的主流形式,世界上已知的计算机病毒中90%以上属于文件型病毒。由于操作系统的更新换代,文件型病毒又可以分为DOS下的和Win9X/Me下的,DOS由于存在时间远远长于Windows,所以大部分的文件型病毒都属于DOS文件型病毒,虽然这些病毒大多已经过了流行期,不可能再给我们带来多大的危害,但是了解一下它们的情况对我们熟悉计算机病毒还是有所帮助的。
下面以1150为例给大家介绍一下文件型病毒的机理。
一、简介
1150英文名字叫Burglar,意思是夜贼,正如它的名字一样,它是一个偷内存的贼。它感染DOS下的EXE和COM文件,1150是被它感染后,文件增加的字节数。1150共有两个版本,感染后症状一样,只是在代码上稍微有一些不同。
1150没有很大的破坏性,不会删除文件,也不会干扰程序运行,但是它会侵占DOS的基本内存和上位内存。对于Windows来说,它惟一的危害就是占据几十KB的内存,对于眼下128MB、256MB的机器来说几乎可以忽略不记了,但是在DOS时代这几十KB的内存却有着另外的意义,现在就让我来为大家详细介绍吧。
二、机理
首先让我们回忆一下DOS时代的基本内存(CMB)和上位内存(UMB)。基本内存是系统内存中0~640KB的那部分,主要使用者是DOS系统、开机内存驻留程序、应用程序等,属于内存最重要的部分,根据DOS系统设定,不管你的内存总容量有多大,如果基本内存不够,程序仍然无法运行。上位内存功能和基本内存类似,但是却不能被应用程序直接调用,大小一般在91KB左右,主要驻留一些系统配置程序,为了优化基本内存,一般我们都尽可能地把开机程序调入上位内存。
1150会将上位内存清空,并且占用2KB的基本内存。2KB基本内存并不是问题的关键。如果没有了上位内存,Smartdrv(磁盘高速缓存)、Mscdex(光驱配置程序)、光驱驱动等占用内存的大户就必须驻留到基本内存中。很多DOS应用程序都对基本内存有特定要求,1995年1150第一次被发现时就导致深圳很多证券公司的股票分析系统因为基本内存不足而无法运行,造成了好几亿的经济损失。
我们只要明白了COM文件的原理就能明白1150如何侵占内存、进行自我复制的。COM是单段执行结构(EXE是多段结构,比COM复杂的多,讲解也比较麻烦),执行文件时是把文件代码映射到基本内存中执行的,起始执行内存地址为100H。Command.com文件被1150感染后,系统启动时它就固定地占用了自己在系统中对应的那段1150字节的基本内存,其余可执行文件一旦被调入内存运行即被1150感染。
三、预防与杀毒
早期DOS的病毒都比较容易对付,只要将文件属性改成只读,就不会被感染。
但是1150在清除上却比它的前辈们麻烦得多。从病毒的演变角度来说,1150应该是属于第二代病毒,较早期病毒而言,它们感染更加隐蔽,还拥有了一些逃避追踪和反杀毒软件的手段。1150使用了一种被称为“反转”的功能,当有人或者杀毒软件想调用程序引导记录查找病毒踪迹时,它就会把正常的引导记录调给你看。这种技术现在已经被几乎所有的文件型病毒采用,用来对付装在硬盘中的杀毒软件,所以杀毒的时候经常要求我们用干净的系统盘引导。
手工的杀毒方法非常复杂,《电脑报》上曾做过介绍,而且该病毒已经过时了,这里就不介绍了。
四、发展与演变
从计算机病毒整个演变角度来看,第一代到第二代的转变几乎预示了病毒发展的全部征候。
第一,拥有了各种反查杀的手段。现代病毒拥有各种先进手段来隐蔽和保护自己,杀毒软件采用传统的特征码查毒法已经很难奏效了,必须使用更先进的智能查杀办法。病毒还会监视中断向量表,手工调用Debug命令。
第二,各种病毒技术开始走向融合。还记得计算机教科书上给计算机病毒的分类吗?所谓文件型病毒和引导型病毒,这是按照病毒的感染方式来分的。为了更容易地传播和破坏,病毒已逐渐将各类病毒专有技术融合,比如1150其实也算得上半个引导型病毒了,所以现在又提出了混合型病毒的说法。