周愛清
[摘要]介紹用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版.