徐亚非
【摘 要】本文对批处理查杀Autorun病毒这一问题进行了分析阐述。
【关键词】批处理 查杀 Autorun病毒
Autorun病毒又名U盘病毒。U盘病毒主要依赖于U盘等移动存储设备生存,当用户从网上下载文件并拷贝到U盘时便可能中了U盘病毒,当用户双击U盘盘符时,便启动了隐藏了的Autorun.inf等系统文件,能在U盘和电脑的各个分区下生成病毒本体和Autorun.inf,并向系统和注册表写入监控、免杀等主体文件。Autorun.inf是一个安装信息文件,通过它可以实现移动设备的自动运行。
其文档大约格式为:
[autorun]
Open=病毒.exe?
Shellexecute=病毒.exe?
Shell\Open\command=病毒.exe?
Shell\Explore\command=病毒.exe?
原理:Autorun病毒能够通过自动播放而达到传播自身的目的,但目前符合要求的可执行文件后缀有.pif .com .exe .bat .vbs;病毒为了达到隐藏自己的目的,通常给Autorun.inf和病毒主体文件添加隐藏属性(H)、只读属性(R)、系统属性(S)中的几种,并且通过修改注册表让用户无法查看隐藏文件,即使在文件夹选项里选择“显示隐藏的文件和文件夹”和取消“隐藏受保护的操作系统文件(推荐)”也不能看到隐藏的文件即使看到了也删除不掉,因为带有多重属性,必须在命令下查看和操作。因此根据以上信息可以编写杀毒用的批处理,如下所示:
@echo off
ping 127.0.0.1 -n 6
::这里起到延迟的效果,目的是等待用户的移动设备被电脑完全识别。
dir d:
if %errorlevel%==0 (goto a) else goto b
:a
d:
call :shadu&&call :help&&call :sos
:b
dir e:
if %errorlevel%==0 (goto c) else goto d
:c
e:
call :shadu&&call :help&&call :sos
:d
dir f:
if %errorlevel%==0 (goto e) else goto f
:e
f:
call :shadu&&call :help&&call :sos
:f
dir g:
if %errorlevel%==0 (goto g) else goto h
:g
g:
call :shadu&&call :help&&call :sos
:h
dir h:
if %errorlevel%==0 (goto i) else goto j
:i
h:
call :shadu&&call :help&&call :sos
:j
pause
exit
goto :one
:shadu
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
for /f "tokens=*" %%a in ('dir/a-d/b/oe') do set/a c+=1&set a!c!=%%a&set b!c!=%%~za&set c!c!=%%~xa
for /l %%a in (1,1,%c%) do set/a d=%%a+1&for /l %%b in (!d!,1,%c%) do if not !b%%a!.==. call :1 %%a %%b
goto :eof
:1
if !b%1!==!b%2! if !c%1!==!c%2! set b%2=&attrib "!a%2!" -r -h -s &attrib "!a%1!" -r -h -s &del "!a%2!" "!a%1!"
goto :eof
goto :one
goto :eof
:help
del *.exe/a:shr&&del *.exe/a:sh&&del *.exe/a:hr&&del *.exe/a:sr del *.exe/a:h&&del *.pif/a:shr&&del *.pif/a:sh&&del *.pif/a:hr&&del *.pif/a:sr&&del *.pif/a:h&&del *.com/a:shr&&del *.com/a:sh&&del *.com/a:hr&&del *.com/a:sr&&del *.com/a:h&&del *.bat/a:shr&&del *.bat/a:sh&&del *.bat/a:hr&&del *.bat/a:sr&&del *.bat/a:h&&del *.vbs/a:shr&&del *.vbs/a:sh&&del *.vbs/a:hr&&del *.vbs/a:sr&&del *.vbs/a:h&&del *.scr/a:shr&&del *.scr/a:sh&&del *.scr/a:hr&&del *.scr/a:sr&&del *.scr/a:h&&Rd RECYCLER/s/q
goto :eof
goto :eof
:sos
if exist autorun.inf if not exist autorun.inf\nul ( for /f "usebackq tokens=1* delims==" %%j in ("autorun.inf") do if not "%%k"=="" ( del /f /a "%%k" )) &&attrib autorun.inf -s -h -r&&del autorun.inf
goto :eof
保存为:U盘病毒专杀.bat,当U盘插入后在电脑上完全识别了就双击这个批处理,它就会自动执行删除病毒文件。程序只列举到H盘,用户可根据自己需要按规律自行添加多余的盘符。当用户U盘里中了文件夹类的病毒后,病毒就会把所有的文件夹都隐藏掉,上面的批处理虽然能查杀这类病毒但是没有解决病毒留下的后遗症:用户无法找到自己以前的文件夹了!所以下面的这个配套批处理能够很好的做到这一点:
@echo off
Echo请输入所需显示被隐藏文件的盘符:&&Set /p panfu=请输入盘符,如(D):
dir %panfu%:\&&if %errorlevel%==0 (goto 1) else goto 2
:1
%panfu%:&&echo正在显示所有文件,请稍等...&&attrib *.* /s /d -s -h -r&&cls&&echo %panfu%盘文件已全部显示.
:2
Pause
保存为:显示隐藏文件.bat,当遇到自己的文件或者文件夹找不到的时候,只要是被隐藏了就可以执行这个批处理来显示所有东西。
(作者单位:许昌学院05级电气本科一班)