1970年1月1日星期四

autorun.inf病毒之我见

    五年前我就见过他,当时上网还不方便。偶尔得到一张《电脑报》,照着上面的方法处理了这个小小蠕虫释放的便便,最近这个病毒的编写者又故技重施;搞得学院里面老师纷纷求助于我,是需要深度剖析一下最近的autorun了。

    autorun.inf文件的主要作用就是告诉Windows自动运行哪个程序和它的启动路径,并为分区设置在资源管理器中所显示的图标。但是,如果关闭了分区的自动插入通告功能,则只能使用Shell32.DLL(存于Windows的System目录下)中的默认图标。打开autorun.inf,你会发现它的编写格式是:
[AutoRun]
open=……
icon=……

    open一行是告诉操作系统要自动运行的文件名和它的启动全路径。比如,若想自动运行Autorun目录下的*.exe文件,这一行就写成:
open=Autorun\*.exe

icon一行是告诉操作系统该分区以什么样的图标表示,如果你不想指定,这一行也可以不写。最近发现autorun.inf中并无此行,可见用心险恶。

至于*.exe病毒多数中断explorer进程或者注入rundll32进程,更有甚者编辑自身将autorun.inf复制到所有分区下。

    删除AutoRun.inf的代码。

来个不太灵光的,但是易于理解的笨方法:

记事本写入如下代码,保存为bat批处理文件。

@echo on
taskkill /im explorer.exe /f
taskkill /im wscript.exe
start reg add HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\EXplorer\Advanced /v ShowSuperHidden /t REG_DWORD /d 1 /f
start reg import kill.reg
del c:\autorun.* /f /q /as
del %SYSTEMROOT%\system32\autorun.* /f /q /as
del d:\autorun.* /f /q /as
del e:\autorun.* /f /q /as
del f:\autorun.* /f /q /as
del g:\autorun.* /f /q /as
del h:\autorun.* /f /q /as
del i:\autorun.* /f /q /as
del j:\autorun.* /f /q /as
del k:\autorun.* /f /q /as
del l:\autorun.* /f /q /as
start explorer.exe

 

另一种删除+免疫方法:

记事本写入如下代码,保存为bat批处理文件。


@echo off
cls
set delay=
if %1'==' set delay=1
if %1'==0' set delay=0
set flag=
if not exist %windir%\system32\cmd.exe goto exit
mode con cols=60 lines=40
title Autorun类病毒智能删除+免疫  color 0a
cls
echo.
if '%delay%'=='1' ping -n 3 127.0.0.1>nul 2>nul
if '%delay%'=='0' pause
setlocal EnableDelayedExpansion
set cd1=%cd%
cd \
set disk=c d e f g h i j k l m n o p q r s t u v w x y z
cls
for %%a in (%disk%) do if exist %%a: if exist "%%a:\autorun.inf" (
call set flag=0
echo.
echo.
for /f "tokens=2,3*delims==" %%b in (%%a:\autorun.inf) do (
if exist "%%a:%%~pnxb" (
del /f /a /q "%%a:%%~pnxb"
call set flag=1
)
)
if !flag!'==0' echo  %%a:盘未发现病毒体
echo.
)
if '%delay%'=='1' ping -n 3 127.0.0.1 >nul 2>nul
if '%delay%'=='0' pause
cls
echo.
echo  删除完毕!
echo.
if '%delay%'=='1' ping -n 2 127.0.0.1 >nul 2>nul



cls
echo.
echo  建立免疫系统
echo.
set para=Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoDriveTypeAutorun /t REG_DWORD /d 0xdf /f
echo  免疫注册表
echo.
reg add HKLM\%para%
reg add HKCU\%para%
echo.
echo.
gpupdate /force>nul 2>nul


: 键路径:[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Exploer]
: 在右侧窗格中有 "NoDriveTypeAutoRun"这个键决定了是否执行Autorun功能.其中每一位代表一个设备,不同设备用以下数值表示:
: 设备名称 第几位 值 设备用如下数值表示 设备名称含义
: DRIVE_UNKNOWN 0 1 01h 不能识别的类型设备
: DRIVE_NO_ROOT_DIR 1 0 02h 没有根目录的驱动器
: DRIVE_REMOVABLE 2 1 04h 可移动驱动器
: DRIVE_FIXED 3 0 08h 固定的驱动器
: DRIVE_REMOTE 4 1 10h 网络驱动器
: DRIVE_CDROM 5 0 20h 光驱
: DRIVE_RAMDISK 6 0 40h RAM磁盘
: 其中: 保留 7 1 80h  未指定的驱动器类型
: 以上值"0"表示设备运行,"1"表示设备不运行。
 


for %%a in (%disk%) do if exist %%a: (
if exist "%%a:\autorun.inf" del /f /a /q %%a:\autorun.inf>nul 2>nul
md %%a:\autorun.inf
attrib +h +s +r %%a:\autorun.inf>nul 2>nul
copy /y %0 %%a:\autorun.inf>nul 2>nul
md %%a:\autorun.inf\NoDel..\>nul 2>nul
)
echo.
echo.
echo  所有操作完毕!
echo.
if '%delay%'=='0' pause
if '%delay%'=='1' ping -n 3 127.0.0.1 >nul 2>nul


title %~dp0
if %flag%'==' goto exit
:end
:exit
cd %cd1%
for %%a in (cd1 delay para flag) do set %%a=
endlocal


 


网络上有软件名叫bat2exe;很不错,对于熟悉dos的懒人很实用。


 

没有评论: