DOS

让CIH永不发作--批处理命令(二)

DOS之家 葛明阳

    小知识:

  
1998年的4月26日,是CIH病毒的生日,这个病毒首先在台湾被发现,是由24岁的陈盈豪Chen Ing-Halu编制的,由于其名字第一个字母分别为C、I、H,因此这可能是计算机病毒名称的由来。
    如同潘多拉的盒子被打开,从此,这个病毒象幽灵一样在网络中游荡,一年后的4月26日,中国的30余万台电脑的用户经历了一个令人心悸的梦魇:当从初春的风中走入办公室打开电脑的时候,屏幕却没有任何显示,只有死一般的沉寂,单是可以统计的经济损失就可以以亿为单位计算,从此中国电脑用户明白了:病毒很厉害,病毒在身边。
    破坏性:CIH是迄今为止发现的最阴险的病毒之一属恶性病,毒当其发作条件成熟时可从硬盘主引导区开始依次往硬盘中写入垃圾数据,直到硬盘数据被全部破坏为止,最坏的情况下硬盘所有数据(含全部逻辑盘数据)均被破坏。另外,某些主板上的Flash Rom中的BIOS信息将被清除。
    CIH有3个版本,1.2版(最流行)4月26日发作,1.3版6月26日发作,1.4版每月26日发作(最厉害)。另外,最近又有一个CIH的变种每年的12月25日发作,俗称“圣诞CIH”,据说比CIH的更隐蔽,破坏性更强。

    解决方案:

   
虽然预防CIH 的软件很多,如各大杀毒软件的实时监测功能,但难免有疏漏之时。
    原理:
    根据病毒的两个弱点进行编程:
    1,只在特定日期发作
    2,只在进入Windows之后发作
    因此我们可以在Autoexec.bat中设置一段小程序,在进入Windows之前提醒用户更改日期。 详细步骤:
    (一)用记事本打开或新建Autoexec.bat,输入以下内容:
rem *****CIH&25CIH*****  此行为注释不被执行
type nul>c:\today.is  建立一个0 字节空的临时文件todoy.is
cls 清除屏幕显示
dir c:\today.is|find "-26-"  查找开机时间是否为26日
if not errorlevel 1 goto CIH  如果没有错误是26日就执行
:CIH  子程序
goto noCIH  否则不是26日则转到:noCIH子程序
:CIH  :是子程序的标志,CIH是子程序名称
echo Today is CIH day!Please change clock to 27th in the CMOS!  是26日就在屏幕上显示英文“今天是CIH 日请在CMOS中更改日期为27日”
pause  暂停程序运行,并显示英文“Press any key countinue”(按任意键继续)
del c:\today.is>nul   删除today.is(nul为不显示删除过程中的提示)
restart.com  执行restart.com,此文件可以到Win98启动盘中的Ebd.cab 中提取,提取后把它放到C:\下面
:noCIH   不是26日时执行该子程序.以下预防圣诞CIH的方法与上面的类似不再说明
cls
dir c:\today.is|find "12-25-"
if not errorlevel 1 goto 25vir
goto novir
:25vir
echo Today is CIH day!Please change clock to 27th in the CMOS!
pause
del c:\today.is>nul
restart.com
:novir
del c:\today.is>nul
rem *****CIH&25CIH*****
cls
    使用:
    当你在每月的26日或12月25日打开电脑时,屏幕就会出现英文提示“Today is CIH day!Please change clock to 27th in the CMOS!”如图:


   按任意键将重启电脑,然后按Delete键进入CMOS,将日期更改为为27日即可,不要忘了到第二天再将日期改回正常日期哦。

本文发表于2002年《电脑爱好者》第20期