荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Peter (小飞侠), 信区: Program
标  题: 3783病毒的发现和清除
发信站: BBS 荔园晨风站 (Thu Jan 21 22:38:59 1999), 转信


病毒的发现
    最近,笔者所在学院计算机中心发现一种新病毒,很快蔓延至全中
心所有教师和学生用机。新病毒对DOS系统、Windows  3.x、Windows
95等系统以及上述各系统支持的应用程序都产生严重干扰和破坏。
    以前安装的Windows  3.x与Windows  95下许多程序不能运行,并
导致死机。重新安装i ndows95时,先是安装过程明显较正常情况减慢
,安装过程还尚可进行,但到屏幕提示"正在做第一次启动Windows95准
备"时,硬盘灯长亮,机器死机。重新安装Windows  3.2时,情况与Wn d
ows95类似,到屏幕提示"正在重新启动系统"时,死机。
    在DOS系统下,一些系统程序有显著异常,用drvspace对磁盘增容
时,在处理过程接近结束时死机。几乎是所有的常见应用程序的运行
都受到干扰和破坏,金山、Ucdos等汉字系统的一些基本模块不能正常
进驻内存,比如,金山汉字系统的py模块。Foxbase、Turbo Pascal或T
r bo C集成环境不能正常启动或在运行时出现难以解释的错误。特别
是在上述集成环境中的运行有磁盘读写操作的程序一定异常。
    用最新版本的F-PROT或Kill或KV300等杀毒软件检测系统,Kill报
告一切正常,KV300报告引导扇区受到破坏,但无文件染毒的报告。实
际上,Kill和KV300自身同样会受到该病毒感染,再次使用已带毒的KV3
00时,KV300并无自身受到感染的报告,机器死机, 更不能行使"自动修
复"功能。
    用dir命令检测可疑程序,发现长度正常。但用pctools检测长度,
一些文件的长度增长。再用肯定清洁的软盘启动,对比文件长度,一些
文件的长度变化得到证实,病毒的存在得到了肯定。
    鉴于该病毒对我院计算机中心的教学工作的严重影响,在试用多
种杀毒软件无效的情况下,笔者只好对该病毒进行了专门分析,基本弄
清了病毒的感染机制,在此基础上进行了病毒清除工作,并编制了相应
的杀毒程序,现简介如下。
    病毒特点
    通过对病毒程序的完整分析得知,病毒程序(包括其自定义数据区
)长度为3783(ec7h)字节,执行语句长度为e1ch字节,数据区为abh字节
。笔者暂命名该病毒为3783病毒。
    病毒为隐型综合性病毒,既感染软盘引导扇区和硬盘主引导记录,
也感染多种文件。被感染的文件不只有DOS系统的com、exe、bin(比
如drvspace.bin,这是磁盘增容不能实现的主要原因)、sys等文件类
型(但不感染ibmbio.sys、ibmdos.sys、chkdsk.com),也包括Windows
系统的dll、src等文件类型。任何受感染文件将在尾部增加3783字节
,病毒通过设置、检测感染标志,避免了文件重复感染。
    病毒主要改写了int  2a。病毒程序中也有一段通常病毒程序都
可能具有的防跟踪的程序段,采用一般的跟踪方法将陷入一个多达几
万次的无意义的循环圈。病毒程序中也采用了较新病毒程序经常采用
的故意间接跳转方式,以隐蔽跳转入口。病毒程序中使用了几条8026
指令,所以,病毒的感染对象硬件标准至少是80286或以上机型,但病毒
并无对8088硬件的判断语句,故在8088机型上,病毒程序会导致死机。
    有幸的是,病毒程序并未加密,也非多态型。但此病毒仍然是很有
特点的,有趣的地方至少有以下几点:

    1.病毒在选择欲感染文件类型时,除了com文件是以扩展名作为识
别标志外,其它多种文件类型都是通过识别内部标志,比如,识别是否
为exe文件并不以扩展名作为标志,而是以开头两个字节是否为4dh、5
ah作为标志。

    2.当系统带毒后,病毒很好地隐藏了受感染文件的长度变化,它不
像某些隐型病毒那样只要修改带毒文件的扩展名即可看到感染文件的
长度变化。无论如何修改带毒文件名,长度依然"正常"。这是因为病
毒决定某文件长度是否应伪装是通过检测该文件的感染标志而不是文
件扩展名的缘故。这种伪装,无论是在DOS系统或在Windows系统下,都
做得很好。
    3.对于多种打包文件(无论此包是否为压缩包),比如用arj、lha
生成的压缩包、用bacu p或msbackup生成的非压缩包等,只要在带毒
环境中解包,被解包出来的所有文件将立即被感染。

    4.病毒程序针对不同的操作系统(DOS与Windows)编写了不同的程
序段,特别是针对Wino ws系统的特点(包括不同模式),病毒程序写得
很细致,这也是为什么该病毒程序长达3783字节的主要原因。
    软盘引导扇区受感染情况是:病毒修改了引导扇区的第66、68两
字节及70~89处20字节。
    对com文件的感染情况是: 病毒把该文件的前03h字节移动到偏离
病毒程序起始位置e8处,即偏移受感染文件尾部40h处。然后在用一个
三字节长的jmp  xxxx语句修改该文件,xxx为病毒程序入口地址。
    对exe文件的感染情况是: 病毒把该文件的前40h字节移动到偏离
病毒程序起始位置e8处,即偏移受感染文件尾部40h处。然后病毒至少
修改该exe文件头下列各处:
    02-03h  原长度除以512的余数修改为已感染文件长度除以512的
余数;
    04-05h  原文件的扇区数修改为已感染文件的扇区数;
    10-11h  原被装入程序模块的初始sp值修改为病毒所需要的sp值
;
    14-15h  原被装入程序模块的初始ip值修改为病毒所需要的ip值

    对其它类型文件的感染情况类似于exe文件。

    病毒的清除

    1.引导扇区
    如前所述,病毒并未修改引导程序起始处的jmp 1e0语句,而是修
改了引导扇区的第66、68两字节及70-89处20字节。实际上,MS  DOS3
..30之后的各种不同版本在此范围的语句基本相同,所以只需从清除引
导扇区中获取第66、68两字节及70-89处20字节内容,写入相应地址即
可。
    也可用清洁盘启动,再用清洁的sys.com传递清洁系统覆盖引导扇
区病毒。
    2.com文件
    从偏离带毒文件尾40h处,读取3字节,此即原文件的起始三字节,
写入带毒文件头处,以带毒文件长度-3783字节作为新文件长度存盘即
可。

    3.exe文件
    从偏移带毒文件尾40h处,读取40h字节(十进制64字节),写入带毒
文件头处,以带毒文件长度-3783字节作为新文件长度存盘即可。

    4.其它类型文件
    方法同exe文件。
    上述清除病毒的操作可用debug完成。但通常受感染文件很多,手
工操作的工作量很大通常,一个系统受感染文件多达几百个),且易出
错。为此,笔者编制了杀毒程序,已经多次检验,效果很好。现推荐给
同行们使用。
    最后说明一个关于交叉感染的问题,笔者在我院机房发现,3783病
毒可与多种病毒交叉感染,比如1465病毒、natas等,这会给病毒清除
带来一些困难,交叉感染了多种病毒的文件在杀毒时必须很好地注意
清除各种病毒的的先后次序,根据上述对3783病毒的分析,一般应先清
除3783病毒。
    编者注:由于源程序较长,故发表在我报的WWW站点上,网址是:htt
p://www.computerwol d.co.cn/skill/skill.html,欢迎广大读者访
问。

--
※ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 192.168.1.3]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店