[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[安全相关] 批处理病毒清理助手VirusCleaner V1.3.bat[测试]

本帖最后由 cjiabing 于 2014-6-16 12:59 编辑

升级内容[VirusCleaner V1.3.4 [20140616] ]:
1.修复全盘搜索的BUG。
2.提升恢复显示被隐藏文件夹的速度。
3.修正了文件目录。

有两个问题需要强调:
  • 因为涉及到修改注册表等敏感操作,可能会被360等杀毒软件拦截,请允许放行。
  • 设置好的有些内容可能只是普通文件,但为病毒所利用,请根据自己情况判断。
  • 改善SVCHOST.exe内存使用量高的判断,对彻底杀毒十分必要,但也可能导致系统异常,甚至蓝屏死机!重启即可。

为什么需要批处理病毒清理助手VirusCleaner?
  • 有些U盘病毒并不能为360等杀毒软件发现和查杀,比如同名文件夹病毒,但它却困扰着许多人。而本程序对同名文件夹病毒和随机名称病毒具有很好的发现和查杀功能。——这个可不是吹牛!
  • 本程序原本是本人杀毒专用辅助工具,因结合同名文件夹病毒专杀等功能,经过多方测试成功有效,一来演示杀毒模板的作用,二来方便传播杀毒方法。
  • 本程序核心功能:一是定制杀毒,二是提高系统运行速度。为许多菜鸟带来福音。


最新版请看以下代码:
  1. @echo off&title VirusCleaner V1.3.4 [20140616]  by cjiabing &setlocal EnableDelayedExpansion&COLOR 0c
  2. :StartVirusCleaner
  3. cls
  4. echo;&echo;
  5. echo                                批处理病毒清理助手
  6. echo;                                 
  7. echo;
  8. echo         1. 可查杀常见U盘病毒、同名文件夹病毒、随机名称病毒。
  9. echo            恢复被隐藏文件夹,修复映像劫持。
  10. echo            一键结束非系统进程、清理系统垃圾、自启动项、任务计划。
  11. echo;
  12. echo         2. 请插入U盘杀毒,可避免交叉、反复中毒。
  13. echo            请保存好数据,关闭其他程序后再开始杀毒!
  14. echo            如遭到其他杀毒软件拦截,请允许运行!
  15. echo;
  16. echo         3. 声明:适用于普通WindowsXP、Windows7系统。
  17. echo            使用和修改本程序须自担风险,由此产生一切后果与作者无关!
  18. echo;
  19. echo; ———————————————————————————————————————
  20. if not exist %SYSTEMDRIVE%\病毒隔离区 md %SYSTEMDRIVE%\病毒隔离区>nul
  21. if not exist "%SYSTEMDRIVE%\病毒隔离区\%~fn0" copy "%~f0" %SYSTEMDRIVE%\病毒隔离区\ >nul
  22. if exist %SYSTEMDRIVE%\病毒隔离区\VirusCleaner.ini (
  23.     for /f "tokens=*" %%a in (%SYSTEMDRIVE%\病毒隔离区\VirusCleaner.ini) do %%a>nul 2>nul
  24.     REM if /i "%1"=="AR" (set Autorun=1) else set AutoMode=1
  25.     goto [StartVirusKill]
  26. ) else call :CreateInifile "%~f0"
  27. :[ParameterSetting]
  28. REM [可根据需要修改和设置的内容项目]
  29. set Clean=1
  30. REM 一键清理临时文件1,否则0
  31. set Manual=1
  32. REM 手动清理病毒1,否则0
  33. set Autorun=0
  34. REM 随机自启动1,否则0
  35. set AutoMode=0
  36. REM 自动杀毒模式1,否则0
  37. set Search=2
  38. REM 搜索所有盘符所有文件1,搜索所有盘符2,不搜索0
  39. set FixIFEO=0
  40. REM 修复映像劫持1,否则0
  41. set VirusProcessName=IEXPLORE.EXE SuCH0ST.EXE down.EXE boot.EXE systen.EXE expl0rer.EXE fun.EXE Rar.exe
  42. REM 结束进程【将病毒进程名称加入以上设置,并以空格隔开】
  43. set VirusFileNameSys32=mailbody.txt ok.txt out.txt output.txt mail3.vbe Attusb.dll ativcox.dll autousb.bat WIN.bat dd.bat SuCH0ST.exe down.exe boot.exe 1.RMVB fun.exe expl0rer.exe
  44. REM 删除文件【将系统目录 %SYSTEMROOT%\system32 中的病毒文件名加入以上设置,并以空格隔开;请谨慎添加,避免误删!】
  45. set VirusFileNameSys=XP-*.EXE winvcreg.exe og.dll ul.dll og.EDT 21c0.EDT 21c0.inf 69fe.inf com.run dp1.fne eAPI.fne HtmlView.fne internet.fne krnln.fnr RegEx.fnr shell.fne spec.fne msdll.dll Wsctf.exe expl0rer.exe
  46. REM 搜索C盘并删除文件【将根目录 %SYSTEMDRIVE% 中的病毒文件名加入以上设置,并以空格隔开;请谨慎添加,避免误删!】
  47. set VirusSearchfFileName=autorun.inf lpk.dll SuCH0ST.EXE down.EXE boot.EXE systen.EXE expl0rer.EXE fun.EXE
  48. REM 搜索全盘并删除文件【将病毒文件名加入以上设置,并以空格隔开;请谨慎添加,避免误删!】
  49. set VirusServiceName=DNSSystem  AppMgmt
  50. REM 停用服务项【将被病毒利用的服务名(缩写)加入以上设置,并以空格隔开】
  51. :[StartVirusKill]
  52. REM -----------------------------------------------------------------------------
  53. set "UDrive=for /f "skip=1" %%i in ('wmic logicaldisk where "drivetype='2'" get caption') do if exist %%i"
  54. if "%AutoMode%" neq "1" call :startUView
  55. :UCleaner
  56. echo;&echo;&echo;
  57. echo ——杀毒进行中,请勿关闭程序!!!
  58. echo ——如杀毒软件拦截,请允许运行!!!
  59. for %%a in (7 XP) do wmic os get caption|findstr /i /c:"Microsoft Windows %%a">nul&&set WinOS=%%a
  60. echo     [您的系统是 Windows !WinOS!]。
  61. ping /n 3 127.0.1>nul
  62. echo;&echo;&echo;
  63. echo ——结束病毒进程 . . .
  64. taskkill /f /im explorer.exe
  65. for %%a in (%VirusProcessName%) do taskkill /f /t /im %%a
  66. for /f "tokens=2" %%a in ('tasklist /fi "MODULES eq AppMgmts.dll" /FO TABLE /NH') do echo 发现DLL模块 AppMgmts.dll ,PID是 %%a ;&if exist %SYSTEMROOT%\system32\AppMgmts.dll echo 位于 %SYSTEMROOT%\system32\AppMgmts.dll 。
  67. for /f "tokens=2,5,7 delims=, " %%a in ('tasklist /fi "IMAGENAME eq svchost.exe" /FO TABLE /NH') do if /i %%c==k if %%b geq 70 echo PID 为 %%a 的进程 Svchost.exe 内存使用量高!&echo;&echo ——警告!!!&echo ——Svchost.exe内存使用量高!可能存在病毒!需临时关闭!!!&echo ——按任意键强制结束!有可能导致系统异常或死机!重启即可。&echo ——退出请直接关闭!&echo;&pause&taskkill /t /f /pid %%a&sc start AudioSrv
  68. start explorer.exe
  69. echo;&echo;&echo;
  70. echo ——停止病毒服务项 . . .
  71. for %%a in (%VirusServiceName%) do (
  72.     sc stop %%a
  73.     sc config %%a start= disabled
  74. )
  75. echo;&echo;&echo;
  76. echo ——清除随机名称病毒 . . .
  77. call :SameName
  78. echo;&echo;&echo;
  79. echo ——清除 %SYSTEMROOT%\system32 下的病毒文件 . . .
  80. for %%a in (%VirusFileNameSys32%) do if exist %SYSTEMROOT%\system32\%%a (
  81.     ATTRIB %SYSTEMROOT%\system32\%%a -s -h -a -r
  82.     del /f /s /a /q %SYSTEMROOT%\system32\%%a
  83. )
  84. echo;&echo;&echo;
  85. echo ——清除 %SYSTEMDRIVE% 下的病毒文件 . . .[提示:耗时可能较长,请耐心等待]
  86. for %%a in (%VirusFileNameSys%) do set VFS=%%SYSTEMDRIVE%%\%%a !VFS!
  87. for /f "tokens=*" %%i in ('dir /s /b /a !VFS! %SYSTEMDRIVE%\XP-*.EXE') do if exist %%i (
  88.     ATTRIB %%i -s -h -a -r
  89.     del /f /s /a /q %%i
  90. )
  91. echo;&echo;&echo;
  92. echo ——全盘清除指定病毒文件 . . .[提示:耗时可能较长,请耐心等待]
  93. if %Search%==1 (call :Searchs /s) else (
  94.     if %Search%==2 (call :Searchs) else (echo [忽略])
  95. )
  96. echo;&echo;&echo;
  97. echo ——一键结束非系统进程、清理任务计划、清理自启动项、修复映像劫持 . . .
  98. call :CleanProcess&call :CleanTasks&call :CleanAutorun
  99. if %FixIFEO%==1 call :FixIFEO
  100. if %Autorun%==1 reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v "%~nx0" /d "%~f0 AR" /f
  101. echo;&echo;&echo;
  102. echo ——一键清理系统临时文件 . . .
  103. if %Clean%==1 (call :CleanTemp >nul 2>nul) else echo [忽略]
  104. echo;&echo;&echo;
  105. echo ——恢复显示被隐藏的文件夹 . . .
  106. for /f "skip=1" %%i in ('wmic logicaldisk where "drivetype='3'" get caption') do if exist %%i\ call :HideFolder  %%i\
  107. echo;&echo;&echo;
  108. echo ——恢复移动盘被隐藏的文件夹 . . .
  109. %UDrive%\ call :HideFolder %%i\&call :CleanU %%i\
  110. REM 存在问题:一些U盘没插入但盘符会显示并且弹出错误提示!
  111. echo;&echo;&echo;
  112. echo ——手动删除病毒残留文件 . . .
  113. if "%AutoMode%" neq "1" if "%Manual%"=="1" (call :Manual) else (echo [忽略])
  114. :End
  115. echo;&echo;&echo;
  116. echo     杀毒结束!
  117. echo     病毒文件被隔离到: %SYSTEMDRIVE%\病毒隔离区
  118. echo     请自行甄别清除!
  119. echo     欢迎访问【甲兵时代】空间!http://hi.baidu.com/cjiabing
  120. echo     欢迎访问【批处理之家】论坛!http://www.bathome.net
  121. if "%AutoMode%" neq "1" echo     请按任意键返回!&pause>nul&goto StartVirusCleaner
  122. echo     自动退出!
  123. ping /n 5 127.0.1>nul
  124. exit
  125. REM -----------------------------------------------------------------------------
  126. :startUView 优盘浏览
  127. echo           杀毒:[0]查杀 [1]快速查杀 [2]全面查杀 [3]自启模式 [4]打开配置;
  128. echo           优盘:[5]打开 [6]浏览优盘 [7]查看程序 [8]查看隐藏 [9]显示隐藏;
  129. echo;
  130. set input=
  131. set /p input=.       请输入序号回车执行【直接回车查杀】:
  132. if "%input%"=="" goto UCleaner
  133. if "%input%"=="0" goto UCleaner
  134. if "%input%"=="1" set Clean=0&set Manual=0&set Search=2&set FixIFEO=0&set AutoMode=1&goto [StartVirusKill]
  135. if "%input%"=="2" (
  136.     set Clean=1&set Manual=1&set Search=1&set FixIFEO=1&set AutoMode=1
  137.     for /f "tokens=2,5,7 delims=, " %%a in ('tasklist /fi "IMAGENAME eq svchost.exe" /FO TABLE /NH') do if /i %%c==k if %%b geq 40 echo PID 为 %%a 的进程 Svchost.exe 内存使用量高!&echo;&echo ——警告!!!&echo ——Svchost.exe内存使用量高!可能存在病毒!需临时关闭!!!&echo ——按任意键强制结束!有可能导致系统异常或死机!重启即可。&echo ——退出请直接关闭!&echo;&pause&taskkill /t /f /pid %%a&sc start AudioSrv
  138.     goto [StartVirusKill]
  139. )
  140. if "%input%"=="3" call :EidtIni Autorun 1 AutoMode 1&echo;&reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v "%~nx0" /d "%~f0 AR" /f>nul&echo         已设置为开机自动启动杀毒!&echo;&pause
  141. if "%input%"=="4" if exist %SYSTEMDRIVE%\病毒隔离区\VirusCleaner.ini (start "" %SYSTEMDRIVE%\病毒隔离区\VirusCleaner.ini) else  call :CreateInifile "%~f0"&start "" %SYSTEMDRIVE%\病毒隔离区\VirusCleaner.ini
  142. if "%input%"=="5" %UDrive% start "" %%i
  143. if "%input%"=="6" %UDrive% dir /b /a %%i&pause
  144. if "%input%"=="7" %UDrive% dir /b /a %%i\*.exe %%i\*.dll %%i\*.bat %%i\*.cmd %%i\*.com %%i\*.vb  %%i\*.vbe  %%i\*.vbs  %%i\*.js&pause
  145. if "%input%"=="8" %UDrive% dir /b /s /ah %%i&pause
  146. if "%input%"=="9" %UDrive% call :HideFolder %%i\&call :CleanU  %%i\&%UDrive% start "" %%i
  147. goto StartVirusCleaner
  148. :EidtIni
  149. cd.>%SYSTEMDRIVE%\病毒隔离区\_VirusCleaner.ini
  150. if exist %SYSTEMDRIVE%\病毒隔离区\VirusCleaner.ini (
  151.     for /f "tokens=1,2* delims== " %%a in (%SYSTEMDRIVE%\病毒隔离区\VirusCleaner.ini) do (
  152.         if /i "%%a"=="set" (
  153.             if /i "%%b"=="%1"  (set "IniVar=set %%b=%2")
  154.             if /i "%%b"=="%3"  (set "IniVar=set %%b=%4") else (if /i "%%b" neq "%1"  set "IniVar=set %%b=%%c")
  155.         ) else (set "IniVar=%%a %%b %%c")
  156.         echo;!IniVar!
  157.     )>>%SYSTEMDRIVE%\病毒隔离区\_VirusCleaner.ini
  158. )
  159. del /q %SYSTEMDRIVE%\病毒隔离区\VirusCleaner.ini&ren %SYSTEMDRIVE%\病毒隔离区\_VirusCleaner.ini VirusCleaner.ini
  160. goto :eof
  161. :CreateInifile
  162. cd.>%SYSTEMDRIVE%\病毒隔离区\VirusCleaner.ini
  163. set LineNum=
  164. for /f "tokens=1 delims=:" %%i in ('findstr /ibn ":\[ParameterSetting\] :\[StartVirusKill\]" %1') do (
  165.     if "%%a" neq "" if "!LineNum!" neq "" (
  166.         for /f "tokens=1* delims=:" %%a in ('findstr /in .* %1') do if %%a geq !LineNum! if %%a leq %%i echo;%%b
  167.     )
  168.     set LineNum=%%i
  169. )>>%SYSTEMDRIVE%\病毒隔离区\VirusCleaner.ini
  170. goto :eof
  171. :Manual 手动清理病毒残留文件夹
  172. echo;&echo;&echo;&echo;
  173. echo     文件夹名称  文件夹创建日期、时间
  174. echo; ———————————————————————————————————————
  175. for /f "tokens=1-4*" %%a in ('dir /o-d /ad %SYSTEMROOT%\system32') do (
  176.     set str=%%d
  177.     if "!str!" neq "" if "!str:~6,3!"==""  if "!str:~5,1!" neq "" if /i "xircom" neq "!str!" if /i "export" neq "!str!" if /i "icsxml" neq "!str!" if /i "zh-CHS" neq "!str!" if /i "config" neq "!str!" if /i "migwiz" neq "!str!" if /i "FxsTmp" neq "!str!" if /i "winevt" neq "!str!"  (echo     %%d      %%a      %%b  %%c)
  178. )
  179. echo; ———————————————————————————————————————
  180. echo     以上文件夹位于 %SYSTEMROOT%\system32 目录下,有可能是系统文件夹。
  181. echo         1.如果文件夹名称由数字和字母随机六位组成的,可能是病毒残留文件夹;
  182. echo         2.如果创建于近期,可能是病毒残留文件夹;
  183. echo         3.如果包含病毒库文件,可能是病毒残留文件夹。
  184. echo     误删系统文件夹可能导致系统奔溃!如无法确认请跳过!删除[Y]不删除[N]。
  185. echo;
  186. for /f "tokens=1-4*" %%a in ('dir /o-d /ad %SYSTEMROOT%\system32') do (
  187.     set str=%%d
  188.     if "!str!" neq "" if "!str:~6,3!"==""  if "!str:~5,1!" neq "" if /i "xircom" neq "!str!" if /i "export" neq "!str!" if /i "icsxml" neq "!str!" if /i "zh-CHS" neq "!str!" if /i "config" neq "!str!" if /i "migwiz" neq "!str!" if /i "FxsTmp" neq "!str!" if /i "winevt" neq "!str!"  (
  189.         ATTRIB %SYSTEMROOT%\system32\%%d -s -h -a -r
  190.         rd /s %SYSTEMROOT%\system32\%%d
  191.     )
  192. )
  193. goto :eof
  194. :Searchs 全盘搜索指定病毒
  195. if /i "%~1" neq "/s" (for %%a in (%VirusSearchfFileName%) do for /f "skip=1" %%g in ('wmic logicaldisk list instance') do if exist "%%g\%%~a" (
  196.     ATTRIB -s -h -a -r "%%g\%%~a"
  197.     del /f /s /a /q "%%g\%%~a"
  198. ))&goto :eof
  199. for /f "skip=1" %%g in ('wmic logicaldisk list instance') do if exist %%g pushd %%g\ &for /f "tokens=*" %%m in ('dir /b /a /s %VirusSearchfFileName%') do if exist "%%~m" if /i "%%~m" neq "%SYSTEMROOT%\system32\lpk.dll" (
  200.     ATTRIB -s -h -a -r "%%~m"
  201.     del /f /s /a /q "%%~m"
  202. )&popd
  203. GOTO :EOF
  204. :HideFolder 恢复被隐藏的文件夹
  205. for /f "delims=" %%q in ('dir %1 /a:d /b') do (
  206.     for /f "delims=" %%x in ('dir /a:-d /b "%1%%~q?.exe" "%1%%~q..exe" 2^>nul') do (
  207.         if exist "%1%%~q" ATTRIB  "%1%%~q" -s -h -a -r
  208.         if exist "%1%%~x" if %%~zx leq 2000000 md "%SYSTEMDRIVE%\病毒隔离区\%date:~0,4%%date:~5,2%%date:~8,2%" 2>nul&ATTRIB  "%1%%~x" -s -h -a -r&move /Y "%1%%~x" "%SYSTEMDRIVE%\病毒隔离区\%date:~0,4%%date:~5,2%%date:~8,2%"&echo [%date% %time%] %~1%%~x >>"%SYSTEMDRIVE%\病毒隔离区\VirusCleaner.log"&echo ——[疑是病毒 "%1%%~x" 转移到 "%SYSTEMDRIVE%\病毒隔离区\%date:~0,4%%date:~5,2%%date:~8,2%" ]
  209.     )
  210. )
  211. if exist "%1System Volume Information" attrib +s +h +r /s /d "%1System Volume Information"
  212. if exist "%1Recycled" attrib +s +h +r /s /d "%1Recycled"
  213. if exist "%1Recycler" attrib +s +h +r /s /d "%1Recycler"
  214. if exist "%1$RECYCLE.BIN" attrib +s +h +r /s /d "%1$RECYCLE.BIN"
  215. goto :eof
  216. REM 注意:假如EXE文件与文件夹名称相同(仅名称的最后一位不同),并且位于同一根目录下,则该EXE文件被清理。
  217. :CleanU 清理常见U盘病毒
  218. for /f "delims=" %%q in ('dir /a /b  %1autorun.inf,%1recycle.*') do if exist "%1%%~q" (
  219.     ATTRIB "%1%%~q" -s -h -a -r
  220.     del /f /s /a /q "%1%%~q"
  221.     rd /s /q "%1%%~q"
  222. )
  223. goto :eof
  224. :SameName 清理同名文件夹病毒
  225. for /f "tokens=1" %%a in ('wmic process get name ^|findstr "[0-9]" ^|findstr /i /v "360safe.exe 360tray.exe rundll32.exe"') do taskkill /f /t /im %%a&if exist %SYSTEMROOT%\system32\%%~na\%%a (
  226.     set tmn=%%~na
  227.     if "!tmn:~8,3!"=="" if "!tmn:~4,1!" neq "" (
  228.          ATTRIB %SYSTEMROOT%\system32\%%~na\%%a -s -h -a -r
  229.          del /f /s /a /q %SYSTEMROOT%\system32\%%~na\%%a
  230.     )
  231. )
  232. goto :eof
  233. REM 位于系统目录%SYSTEMROOT%\system32下,进程名称是含有数字的六至八位随机字符,进程名称、程序名称、文件夹名称一致则视为病毒。部分含有数字的进程将被关闭!
  234. :CleanProcess
  235. echo.
  236. echo ——一键清理非系统进程 . . .
  237. set Randomed=%random%
  238. title %Randomed%
  239. if /i %WinOS%==XP set "SystemProcess=System smss.exe csrss.exe winlogon.exe services.exe lsass.exe svchost.exe conime.exe explorer.exe wmiprvse.exe Userinit.exe taskkill.exe spoolsv.exe ctfmon.exe alg.exe tasklist.exe findstr.exe"
  240. if  %WinOS%==7 set "SystemProcess=System smss.exe csrss.exe winlogon.exe services.exe lsass.exe svchost.exe conime.exe explorer.exe wmiprvse.exe Userinit.exe taskkill.exe spoolsv.exe ctfmon.exe alg.exe tasklist.exe findstr.exe wininit.exe lsm.exe conhost.exe dwm.exe WUDFHost.exe audiodg.exe"&set Randomed=管理员:  %Randomed%
  241. taskkill /f /im explorer.exe
  242. for /f "skip=3 tokens=2" %%i in ('TASKLIST /FI "WINDOWTITLE  eq %Randomed%" /FI "STATUS eq running"') do (
  243.     for /f "skip=3 tokens=1,2" %%a in ('tasklist^|findstr /i /v "%SystemProcess%"') do (
  244.         if /i "%%a"=="cmd.exe" (if  "%%~b" neq "%%~i" taskkill /f /t /pid %%b) else taskkill /f /t /pid %%b
  245.     )
  246. )
  247. taskkill /f /t /im findstr.exe
  248. start %windir%\explorer.exe
  249. goto :eof
  250. :CleanTemp
  251. echo.
  252. echo ——一键清理系统垃圾 . . .
  253. del /f /s /q %systemdrive%\*.tmp
  254. del /f /s /q %systemdrive%\*._mp
  255. del /f /s /q %systemdrive%\*.log
  256. del /f /s /q %systemdrive%\*.gid
  257. del /f /s /q %systemdrive%\*.chk
  258. del /f /s /q %systemdrive%\*.old
  259. del /f /s /q %systemdrive%\recycled\*.*
  260. del /f /s /q %windir%\*.bak
  261. del /f /s /q %windir%\*.tmp
  262. del /f /s /q %windir%\prefetch\*.*
  263. rd /s /q %windir%\temp & md %windir%\temp
  264. rd /s /q %temp% & md %temp%
  265. del /f /q %userprofile%\cookies\*.*
  266. del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*"
  267. del /f /s /q "%userprofile%\Local Settings\Temp\*.*"
  268. del /f /s /q "%userprofile%\recent\*.*"
  269. goto :eof
  270. :CleanAutorun
  271. echo.
  272. echo ——一键清理自启动项 . . .[提示:遭到其他杀毒软件拦截,可能导致清理失败!]
  273. (reg delete HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /va /f)||(for /f "skip=4 tokens=1" %%a in ('reg  query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run') do reg delete HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v %%a /f)
  274. (reg delete HKCU\Software\Microsoft\Windows\CurrentVersion\Run /va /f)||(for /f "skip=4 tokens=1" %%a in ('reg  query HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run') do reg delete HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v %%a /f)
  275. reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v ctfmon.exe /d %SYSTEMROOT%\system32\ctfmon.exe /f
  276. del "%ALLUSERSPROFILE%\「开始」菜单\程序\启动\*.*" /q /f
  277. del "%USERPROFILE%\「开始」菜单\程序\启动\*.*" /q /f
  278. del "%SYSTEMDRIVE%\Docume~1\Default User\「开始」菜单\程序\启动\*.*" /q /f
  279. del "%ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup\*.*" /q /f
  280. del "%AppData%\Microsoft\Windows\Start Menu\Programs\Startup\*.*" /q /f
  281. goto :eof
  282. :CleanTasks
  283. echo.
  284. echo ——一键清理计划任务 . . .
  285. at /delete /yes
  286. SCHTASKS /Delete /TN * /F
  287. del /f /q /a %SYSTEMROOT%\Tasks
  288. goto :eof
  289. :FixIFEO
  290. echo.
  291. echo ——一键修复映像劫持 . . .
  292. if exist %SYSTEMDRIVE%\病毒隔离区\FixIFEO.reg (start /w regedit.exe /s %SYSTEMDRIVE%\病毒隔离区\FixIFEO.reg&goto :eof)
  293. for %%a in ( 360rpt.exe 360Safe.exe 360tray.exe adam.exe AgentSvr.exe AppSvc32.exe ArSwp.exe AST.exe autoruns.exe AvastU3.exe avconsol.exe avgrssvc.exe AvMonitor.exe avp.exe CCenter.exe ccSvcHst.exe cmd.exe EGHOST.exe FileDsty.exe FTCleanerShell.exe FYFireWall.exe ghost.exe HijackThis.exe IceSword.exe iexplore.exe iparmo.exe Iparmor.exe irsetup.exe isPwdSvc.exe kabaload.exe KaScrScn.SCR KASMain.exe KASTask.exe KAV32.EXE KAVDX.EXE KAVPF.exe KAVPFW.exe KAVSetup.exe KAVStart.exe KISLnchr.exe KMailMon.exe KMFilter.exe KPFW32.EXE KPFW32X.EXE KPFWSvc.EXE KRegEx.exe KRepair.com KsLoader.exe KVCenter.kxp KvDetect.exe KvfwMcl.exe KVMonXP.kxp KVMonXP_1.kxp kvol.exe kvolself.exe KvReport.kxp KVScan.kxp KVSrvXP.exe KVStub.kxp kvupload.exe kvwsc.exe KvXP.kxp KvXP_1.kxp KWatch.EXE KWatch9x.exe KWatchX.EXE loaddll.exe MagicSet.exe mcconsol.exe mmqczj.exe mmsk.exe msconfig.exe Navapsvc.exe Navapw32.exe NOD32.exe nod32krn.exe nod32kui.exe NPFMntor.exe PFW.exe PFWLiveUpdate.exe process exloprer.exe procexp.exe QHSET.exe QQ.exe QQDoctor.exe QQKav.exe QQSC.exe Ras.exe Rav.exe RavMon.exe RavMonD.exe RavStub.exe RavTask.exe RegClean.exe regedit.com regedit.exe rfwcfg.exe rfwmain.exe rfwProxy.exe  rfwsrv.exe RsAgent.exe Rsaupd.exe rstrui.exe runiep.exe safelive.exe scan32.exe shcfg32.exe SmartUp.exe SREng.com SREng.EXE symlcsvc.exe SysSafe.exe TrojanDetector.exe Trojanwall.exe TrojDie.kxp UIHost.exe UmxAgent.exe UmxAttachment.exe UmxCfg.exe UmxFwHlp.exe UmxPol.exe upiea.exe UpLive.exe USBCleaner.exe vsstat.exe webscanx.exe WoptiClean.exe zjb.exe
  294. ) do set str=!str! %%a
  295. echo Windows Registry Editor Version 5.00>%SYSTEMDRIVE%\病毒隔离区\FixIFEO.reg
  296. echo.>>%SYSTEMDRIVE%\病毒隔离区\FixIFEO.reg
  297. for %%a in (!str!) do echo [-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\%%a]>>%SYSTEMDRIVE%\病毒隔离区\FixIFEO.reg
  298. echo [-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DownloadManager]>>%SYSTEMDRIVE%\病毒隔离区\FixIFEO.reg
  299. echo [-HKEY_USERS\S-1-5-21-1757745196-1676693376-65411059-500\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams\35]>>%SYSTEMDRIVE%\病毒隔离区\FixIFEO.reg
  300. start /w regedit.exe /s %SYSTEMDRIVE%\病毒隔离区\FixIFEO.reg
  301. goto :eof
复制代码
附件: 您需要登录才可以下载或查看附件。没有帐号?注册
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

RE: 批处理杀毒模板VirusCleaner V1.0.bat

本帖最后由 cjiabing 于 2013-4-2 22:03 编辑

批处理杀毒模板,最初版本,仅供参考!
  1. @echo off&title VirusCleaner V1.0
  2. :start
  3. cls
  4. echo 请在批处理编辑状态下修改杀毒设置。
  5. echo 并按任意键开始杀毒!
  6. pause>nul
  7. set processname=IEXPLORE.EXE SuCH0ST.EXE down.EXE boot.EXE systen.EXE expl0rer.EXE fun.EXE
  8. ::结束进程【将你获得的病毒进程名称加入到以上设置,并以空格隔开】
  9. set filename=a.txt b.txt c.txt d.txt mailbody.txt ok.txt out.txt output.txt mail3.vbe Attusb.dll autousb.bat WIN.bat dd.bat SuCH0ST.exe down.exe boot.exe 1.RMVB fun.exe
  10. ::删除文件【将你从根目录 %SYSTEMROOT%\system32 中获得的病毒文件名加入到以上设置,并以空格隔开】
  11. set findfilename=autorun.inf lpk.dll SuCH0ST.EXE down.EXE boot.EXE systen.EXE expl0rer.EXE fun.EXE
  12. ::全盘搜索并删除文件【将病毒文件名加入到以上设置,并以空格隔开】
  13. set servicename=DNSSystem
  14. ::停用服务项【将病毒服务项名加入到以上设置,并以空格隔开】
  15. ::-----------------------------------------------------------------------------
  16. echo ——杀毒进行中 . . .
  17. echo 结束病毒进程 . . .
  18. taskkill /f /im explorer.exe
  19. for %%a in (%processname%) do taskkill /f /t /im %%a
  20. start explorer.exe
  21. echo ——清除指定病毒文件 . . .
  22. for %%a in (%filename%) do if exist %SYSTEMROOT%\system32\%%a (
  23.     ATTRIB %SYSTEMROOT%\system32\%%a -s -h -a -r
  24.     del /f /s /a /q %SYSTEMROOT%\system32\%%a
  25. )
  26. echo ——恢复D盘被隐藏的文件夹 . . .
  27. setlocal EnableDelayedExpansion
  28. call :hs d:\
  29. echo ——恢复移动盘被隐藏的文件夹 . . .
  30. for /f "skip=1" %%i in ('wmic logicaldisk where "drivetype='2'" get caption') do (if exist %%i\ call :hs %%i\&call :rec %%i\)
  31. echo ——停止病毒服务项 . . .
  32. for %%a in (%servicename%) do (
  33.     sc stop %%a
  34.     sc config %%a start= disabled
  35. )
  36. echo ——全盘清除指定病毒文件 . . .
  37. for %%a in (%findfilename%) do (
  38.     for /f "skip=1" %%i in ('wmic logicaldisk where "drivetype='3'" get caption') do for /f "tokens=*" %%x in ('dir /b /s /a %%i\%%a') do if exist "%%~x" (
  39.         ATTRIB -s -h -a -r "%%~x"
  40.         del /f /s /a /q "%%~x"
  41.     )
  42. )
  43. echo ——清除所有计划任务 . . .
  44. at /delete /yes
  45. SCHTASKS /Delete /TN * /F
  46. del /f /q /a C:\WINDOWS\Tasks
  47. ::for /f "tokens=*" %%a in ('dir /s /b /a %SYSTEMROOT%\Tasks\*.job') do if exist "%%~a" del /f /s /a /q "%%~a"
  48. echo ——清除任何随机自启动 . . .
  49. reg  delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v fun /f
  50. echo;&echo ——杀毒结束!按任意键返回!&echo;
  51. pause>nul&goto start
  52. :hs 恢复被隐藏的文件夹
  53. for /f "delims=" %%q in ('dir %1 /a:d /b') do (
  54.     if exist "%1%%~q" ATTRIB  "%1%%~q" -s -h -a -r
  55.     if exist "%1%%~q.exe" del /f /s /a /q "%1%%~q.exe"
  56. )
  57. goto :eof
  58. :rec 清理常见U盘病毒
  59. for /f "delims=" %%q in ('dir /a /b  %1autorun.inf,%1recycle.*') do if exist "%1%%~q" (
  60.     ATTRIB "%1%%~q" -s -h -a -r
  61.     del /f /s /a /q "%1%%~q"
  62. )
  63. goto :eof
  64. 配合《一键清理三剑客》使用可能效果更好!~
复制代码
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

看起来很不错呀。只可惜清空计划任务会误杀。

TOP

唉,出错了,真想发图片给你看看什么情况

TOP

楼主强人,受教了,多谢

TOP

  1.     if exist "%1%%~q.exe" move /Y "%1%%~q.exe" %SYSTEMDRIVE%\病毒隔离区&echo %date% %time% "%1%%~q.exe">>%Notice%
  2.     if exist "%1%%~q,.exe" move /Y "%1%%~q,.exe" %SYSTEMDRIVE%\病毒隔离区&echo %date% %time% "%1%%~q,.exe">>%Notice%
  3.     if exist "%1%%~q;.exe" move /Y "%1%%~q;.exe" %SYSTEMDRIVE%\病毒隔离区&echo %date% %time% "%1%%~q;.exe">>%Notice%
  4.     if exist "%1%%~q:.exe" move /Y "%1%%~q:.exe" %SYSTEMDRIVE%\病毒隔离区&echo %date% %time% "%1%%~q:.exe">>%Notice%
  5.     if exist "%1%%~q`.exe" move /Y "%1%%~q`.exe" %SYSTEMDRIVE%\病毒隔离区&echo %date% %time% "%1%%~q`.exe">>%Notice%
  6.     if exist "%1%%~q~.exe" move /Y "%1%%~q~.exe" %SYSTEMDRIVE%\病毒隔离区&echo %date% %time% "%1%%~q~.exe">>%Notice%
  7.     if exist "%1%%~q^.exe" move /Y "%1%%~q^.exe" %SYSTEMDRIVE%\病毒隔离区&echo %date% %time% "%1%%~q^.exe">>%Notice%
  8.     if exist "%1%%~q_.exe" move /Y "%1%%~q_.exe" %SYSTEMDRIVE%\病毒隔离区&echo %date% %time% "%1%%~q_.exe">>%Notice%
  9.     if exist "%1%%~q-.exe" move /Y "%1%%~q-.exe" %SYSTEMDRIVE%\病毒隔离区&echo %date% %time% "%1%%~q-.exe">>%Notice%
复制代码
这一段只是后面的标点符号不一样,需要FOR处理下,因涉及符号操作有些难度,考虑效率,各位有何建议?
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

回复 6# cjiabing


    置于么

既然只是有个位 不同  何不用通配符  ? 来处理?有一个就够了

参考

?和*

当然你for 来写也不是不可以

TOP

回复 7# bluewing009


    如果单纯看这段代码是可以使用通配符的,但你需要考虑实际情况,乱使用通配符可能会导致误删文件!~因为病毒只是在最后添加了几个标点符号!
是可以使用FOR,但现在有点懒,暂时不想改,暂时也没有病毒进行测试!~呵呵!~
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

回复 8# cjiabing


    你这个是处理autorun启动类病毒的

很明显要处理的是与文件夹名字相同的(相似的).exe文件

你在dir /ad后获得文件夹名字 直接用通配处理即可  我认为不会误删什么

首先路径设定了
其次这种名字的绝大部分是病毒体


如果你不放心 +个判断 比如大小等

因为伪装的exe是一样的你甚至可以把exe当txt对比


不过还是认为通配处理即可

TOP

回复 8# cjiabing


    PS   好久不见~~~~~~~

TOP

回复 10# bluewing009


    哈哈,好酒不见!~
    你说的有道理。等有空去办公室试试看先,因为这种病毒只有办公室有,要亲自测试才知道效果。
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

回复 9# bluewing009


    最后接受你的建议,使用通配符处理,发现后转移到隔离区,这样好多了。
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

没有切实的作用。因为现在,,因为现在U盘AUTO病毒根本没机会了、映像劫持在现在的系统也无毫无作用了,同名文件夹病毒更是土得不能再土。。。现在根本没有了。。。你这个BAT没有切实作用,再说BAT容易误删文件,不够严谨,一旦误删都找不到。但是你的代码功底和规范很好!值得敬佩。
阿方

TOP

回复 13# wuhengsi


    是不是不切实际,用过的最有发言权,不想进行辩驳。
    关于误删的问题,许多人都认为几乎所有批处理都存在误删的危险,我也不想进行辩驳。
    就像用刀子切菜,总有不小心切到手的危险;就像坐车子,总有发生交通事故的可能……
    反正我们单位许多电脑都在用,能帮到需要的人就足够了,这也是我编此代码的初衷。
    至于其他的,你们爱怎么说怎么说去。
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

发现一个小问题,在“ :HideFolder 恢复被隐藏的文件夹 ”此段:

for /f "delims=" %%q in ('dir %1 /a:d /b') do (……
——这里会造成第二个FOR重复循环一次,降低效率!~暂时没找到原因。

if exist "%1%%~q" ATTRIB  "%1%%~q" -s -h -a -r ……
——这里如果放在第二个FOR里面,可以提高效率,但无法恢复部分不存在同名病毒的文件夹。
——如果放在第二个FOR外面,第一个FOR里面,则可以恢复显示所有隐藏文件夹,但会循环两次,影响效率。

有空再更新。
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

返回列表