文件型病毒原理 韩振宇 1994-07-01 一、文件型病毒的结构 (一)COM后缀带毒文件结构:对于COM后缀文件,系统加载时在经过一系列处理之后将全部文件读入内存,并把控制权交给该文件的第一条指令。如果该指令恰为病毒指令则病毒就会获得控制权。COM后缀带毒文件有两种结构: 1.病毒主体在原文件之后。病毒通过修改原文件头代之以一段程序(或简单地用一条跳转指令)指向后面病毒体,以后再恢复该处原指令。 2.病毒整体在原文件之前。加载时病毒体直接获得控制权,不破坏原程序任何部分。 (二)EXE后缀带毒文件结构: EXE后缀文件与COM后缀文件不同,有一特殊的“文件头”结构,其中加载了文件重定位信息等,而非可执行指令。系统加载EXE后缀文件时根据文件头信息定位文件并设置入口处的堆栈指针和代码指针等。病毒在传染EXE后缀文件时一般将文件头的代码指针使之指向病毒入口,当系统加载时病毒首先获得控制权。 除以上两种外,还有极个别的病毒结构较为特殊,如DIR-2病毒等。 二、文件型病毒的驻留 (一)病毒驻留的形式 1.不驻留内存的病毒:有些病毒其引导模块直接调用传染或发作模块而不驻留内存。如“巴塞罗那”病毒、“维也纳”病毒等。 2.驻留内存的病毒:绝大部分文件型病毒都是驻留内存的。病毒进入内存后并不马上传染和发作,而是驻留变为潜伏伏态,同时设置激活条件,被激活后再传染或发作。 3、先驻留后自毁的病毒:有的病毒先驻留内存传染文件,当某些条件满足时销毁内存中部分病毒体,不再传染,如“2048”病毒。 4、有时驻留有时不驻留的病毒,有的病毒第一次被加载时不驻留内存,而且只传染某特定文件(大多数情况下是C盘根目录下的COMMAND.COM文件),当该文件已被传染则不再传染而驻留内存,准备传染其它文件,如“1575”病毒,“LIBIN”病毒。 (二)、病毒驻留的位置 1、驻留内存高端:如“MS”病毒,“DONG”病毒,“杨基”病毒。 2、驻留内存低端:如“GA MANCHU”病毒,“新大四”病毒。有些病毒进入内存后将程序段前缀(PSP)连原程序与病毒体交接位置,使病毒驻留内存低端,然后在接转原程序执行,如“雨点”病毒,“OROPAX”病毒。 3、先暂驻于内存高端后移至低端:如“2048”病毒,“上海六四”病毒。 (三)、驻留病毒的激活:几乎所有驻留内存的文件型病毒(包括混合型病毒)都是通过截取系统功能调用(中断21H)的某些子功能激活其传染模块的。例如有的文件加载功能码(ABH),当你执行文件时该文件可能被传染;有的截取文件查找功能码(HH,12H),当你列目录时某个文件可能被传染;有的截取文件删除、文件改名等功能码,(41H,56H),当你有这些操作时某个文件可能被传染;等等。由于系统和用户许多操作都是通过功能调用完成的,病毒控制了这一功能入口,使用户防不胜防。其它如中断28H、2FH设备驱动程序调用,等也有可能激活病毒。 三、文件型病毒的现象 若计算机没有任何防病毒卡等保护措施,则只能依靠一些现象来判断是否传染了病毒。除了常见的一些现象,有些病毒由于使用了一些技巧使用户几乎察觉不到任何附加现象,有些病毒则由于编制不完善当第一次执行或DOS版本改变或设置“DOS=HIGH”等情况时会出现死机、花屏、不认命令行参数等异常现象。当运行中出现了任何不应当出现的现象时,除了检查是否是误操作、硬件故障外,更要检查是否是毒造成的,是否有文件已被病毒感染。