[摘要]介绍用DEBUG命令编程清楚硬盘引导区病毒的方法。 [关键词]计算机病毒硬盘引导区DEBUG命令清除 中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)1210062-01
一、清除引导区病毒
由于引导型病毒主要是驻留在硬盘0柱面0磁头1扇区开始的引导区内,只要把硬盘引导区的内容全部清零,即可达到清除引导型病毒的目的。其方法是:用DEBUG命令编写一程序,并把它写入一个干净的DOS系统盘上,该程序的功能是把硬盘引导区内所有字节全部清零,从而在清除硬盘引导区全部数据的同时也清除含在其中的病毒代码。由于该程序很短,可用无毒DOS系统盘启动计算机后调用该盘的DEBUG命令编写的如下一段程序并把它写入磁盘,具体操作为:
A:\>DEBUG
-A100
0100 MOV CX,0200 ;清除1个扇区(512个单元)
MOV DI,0200 ;内存起始地址为0200H,送于DI寄存器中
MOV AL,00 ;把立即数00存放到寄存器AL中
0108 MOV [DI],AL ;把AL中的数据写入DI所指的内存单元中
INC DI ; 内存地址加1
DEC CX ; 内存单元个数减1
JNZ 0108 ;不为零转移
MOV AX,0301 ;AH=03是写盘,AL=01是写入一个扇区
MOV BX,0200 ;BX=0200是从内存0200H处开始读数据
MOV CX,0001 ;LH=00为0磁头,CL=01为第一个扇区
MOV DX,0080 ;DH=00为0柱面,DL=80为硬盘
INT 13 ;调用DOS软中断之硬盘读写控制程序
011D INT 20 ;程序运行结束
-N A: ZFCBOOT.COM;给文件命名,意为:对C盘引导区填满零
-BBX
BX 0000
:00
-RCX
CX 0000
:ID ;输入文件长度10个字节
-W ;写盘
Writing 0001D bytes
-Q
A:\>
至此,清除硬盘引导区程序ZFCBOOT.COM已建立在A盘上。
二、清除CMOS病毒
为了确保计算机能真正做到干净无毒,还应清除驻留在CMOS芯片里的病毒。可以用无毒的DOS系统盘启动计算机后,调用该盘上的DEBUG命令编写以下一段程序并写入硬盘:
A:\>DEBUG
-A100
0100 MOV CX,0400;写入2个扇区(0400H为1024个字节,2个扇区)
MOV BL,00 ;寄存器BL存入CNOS起始地址00
0105 MOV AL,BL ;寄存器寻址
OUT 70,AL ;输出CMOS口地址
MOV AL,00 ;立即数00送寄存器AL
OUT 71,AL ;AL中的数据00通过CMOS数据口地址写入CMOS中
INC BL ;CMOS地址加1
DEC CX ;字节数减1
JNZ 0105 ;不为零转移
0112 INT 20 ;程序结束
-N A: ZFCMOS.COM ;给文件命名,意为:对CMOS芯片各字节填满零
-RBX
BX 0000
:00
-RCX
CX 0000
:12 ;输入文件长度12个字节
-W ;写盘
Writing 00012 bytes
-Q
A:\>
为了操作上的方便,可把清除CMOS病毒的程序ZFCMOS.COM与ZFCBOOT.
COM文件同存放在一张软盘上。
三、清除病毒的过程
对于能从A盘启动计算机来讲,其操作步骤为:
第一步:用写有上述两个文件的DOS系统盘从A盘启动计算机;
第二步:运行ZFCBOOT程序,先清除硬盘引导区病毒;
第三步:再运行zfcmos程序,以清除cmos芯片里的病毒代码;
第四步:控RESET复位键,重设CMOS参数后冷启动计算机;
第五步:硬盘分区;
第六步:高级格式化;
第七步:安装操作系统。
对于因CMOS病毒而不能从A盘启动的计算机来说可用以下方法进行操作:
第一步:用C盘DOS目录下的DEBUG命令中的A命令输入前述ZFCMOS.COM文件中的各条语句,并用G命令运行它。以清除CMOS芯片里的病毒代码;
第二步:按RESET复位键,重设CMOS参数后从A盘启动计算机;
第三步:运行ZFCBOOT.COM程序,以清除硬盘引导区病毒;
第四步:硬盘分区;
第五步:高级格式化;
第六步:安装操作系统。
实践证明,还可以用清除引导区病毒的办法彻底卸载Windows NT。
参考文献:
[1]张载鸿,《局部网操作系统 DOS高级技术分析》,国防工业出版社,1988年12月第1版.
[2]黄德志等编著,《Windows环境下DOS操作系统原理与应用》,冶金工业出版社,2005年7月1日,第1版.