Board logo

标题: [安全相关] 批处理病毒清理助手VirusCleaner V1.3.bat[测试] [打印本页]

作者: cjiabing    时间: 2013-2-15 23:14     标题: 批处理病毒清理助手VirusCleaner V1.3.bat[测试]

升级内容[VirusCleaner V1.3.4 [20140616] ]:
链接: https://pan.baidu.com/s/1NE34XYcDbOTtPRQGHuzZrw?pwd=5jwq
1.修复全盘搜索的BUG。
2.提升恢复显示被隐藏文件夹的速度。
3.修正了文件目录。

有两个问题需要强调:
为什么需要批处理病毒清理助手VirusCleaner?

最新版请看以下代码:
  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
复制代码

作者: cjiabing    时间: 2013-3-7 00:32     标题: 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. 配合《一键清理三剑客》使用可能效果更好!~
复制代码

作者: ywq111    时间: 2013-7-18 22:12

看起来很不错呀。只可惜清空计划任务会误杀。
作者: mis    时间: 2013-8-20 17:01

唉,出错了,真想发图片给你看看什么情况
作者: jsynl    时间: 2013-8-24 09:11

楼主强人,受教了,多谢
作者: cjiabing    时间: 2014-1-17 19:38

  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处理下,因涉及符号操作有些难度,考虑效率,各位有何建议?
作者: bluewing009    时间: 2014-1-18 21:52

回复 6# cjiabing


    置于么

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

参考

?和*

当然你for 来写也不是不可以
作者: cjiabing    时间: 2014-1-18 22:19

回复 7# bluewing009


    如果单纯看这段代码是可以使用通配符的,但你需要考虑实际情况,乱使用通配符可能会导致误删文件!~因为病毒只是在最后添加了几个标点符号!
是可以使用FOR,但现在有点懒,暂时不想改,暂时也没有病毒进行测试!~呵呵!~
作者: bluewing009    时间: 2014-1-18 22:33

回复 8# cjiabing


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

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

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

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


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

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


不过还是认为通配处理即可
作者: bluewing009    时间: 2014-1-18 22:37

回复 8# cjiabing


    PS   好久不见~~~~~~~
作者: cjiabing    时间: 2014-1-18 22:48

回复 10# bluewing009


    哈哈,好酒不见!~
    你说的有道理。等有空去办公室试试看先,因为这种病毒只有办公室有,要亲自测试才知道效果。
作者: cjiabing    时间: 2014-2-1 23:14

回复 9# bluewing009


    最后接受你的建议,使用通配符处理,发现后转移到隔离区,这样好多了。
作者: wuhengsi    时间: 2014-8-12 21:51

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

回复 13# wuhengsi


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

发现一个小问题,在“ :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里面,则可以恢复显示所有隐藏文件夹,但会循环两次,影响效率。

有空再更新。
作者: wuhengsi    时间: 2014-8-17 21:18

回复 14# cjiabing


   不必激动,也不要误解,我说的功能上的现已饱和的问题,所以可能会很少派上用场,但是你编程功底和综合能力是令我们十分敬佩的
作者: pkcc110    时间: 2014-9-26 12:21

顶,不错   !!!!!!!!!!!!!
作者: shujutong    时间: 2015-6-19 11:33

回复 16# wuhengsi

U盘病毒这种低级病毒不要小看,在单位传播很厉害,我经常帮人修复被隐藏的U盘文件,都烦死了,公家电脑谁都不愿意费心,又大都是菜鸟。
作者: shujutong    时间: 2015-6-19 11:35

谢谢楼主,对我来说很实用,省的我老天天打dos命令,谢谢
作者: MCRGZN    时间: 2015-8-13 13:00

不错不错不错不错不错不错
作者: 3066531247    时间: 2016-10-20 20:11

回复 1# cjiabing
可以开源么,想做合集
作者: 523066680    时间: 2016-10-20 22:35

本帖最后由 523066680 于 2016-10-20 22:55 编辑

回复 21# 3066531247



要说楼主没开源的话,大概是因为批处理自带混淆吧。

小朋友还是等上中学再说,看看这位:
https://www.zhihu.com/question/50302605

如果读书之外有多余的精力,可以去找个比赛什么的,试试水
作者: ucitx    时间: 2016-12-7 15:35

谢谢了,我来学习学习再学习
作者: 逗比少年    时间: 2017-3-6 19:37

color 0b似乎更好.....




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2