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

[系统相关] [分享]批处理版U盘病毒查杀与防御 1.0 Beta 2

由于学校的电脑病毒横行,特此本人写了一个批处理,可以删除和文件夹同名的exe,和个别的exe。供大家参考参考,大家可以帮忙改进一下,免疫功能已经加入(每次都会免疫,虽然麻烦了点,但是也是为了安全着想),和参考铁甲兵版的注册表修复(每次都会修复,也是处于安全的角度考虑的),更多功能后续加入。批处理本来就应该共享,大家应该把源码顺便贴出来,我的源码如下。
  1. @echo off
  2. title U盘病毒查杀 1.0 Beta 2
  3. echo power by 恒 2009-4-25 编译 &echo.
  4. echo 网址:http://5a83.5d6d.com &echo.
  5. echo 你可以任意修改,但修改版若出现任何问题,本人概不负责,不得用于商业用途。&echo.
  6. ping -n 2 127.1>nul
  7. cls
  8. echo 正在检测您系统中的可移动设备
  9. title U盘设备检测
  10. setlocal enabledelayedexpansion
  11. for /f "skip=1 tokens=1,2 delims=\" %%i in ('fsutil fsinfo drives^|find /v ""') do (
  12.     set genre=%%i
  13.     set genre=!genre:~-2!
  14.     for %%a in (!genre!) do (
  15.         fsutil fsinfo drivetype %%a | findstr "移动" >nul 2>nul && if /i not "%%a"=="A:" (
  16.             set 5a83.5d6d.com=%%a
  17.             echo.
  18.             echo 找到可移动存储设备, 盘符为%%a  。
  19.             echo.
  20.             echo 正在处理U盘隐藏文件,请等待...
  21.             echo.
  22.             !5a83.5d6d.com!
  23.             cd\
  24.             attrib /s/d -r -h -s -a *.* >nul 2>nul
  25.             call :kill
  26.         )
  27.     )
  28. )
  29. cls
  30. title 未发现U盘(warning)
  31. color fc
  32. echo 检测完毕!没有检测到U盘存在!本程序即将退出!
  33. echo 网址:http://5a83.5d6d.com
  34. ping -n 4 127.1>nul
  35. goto :thanks
  36. :kill
  37. title U盘病毒查杀(当前位置!5a83.5d6d.com!盘)
  38. echo 当前位置 !5a83.5d6d.com!盘,请你确认!这个是你的U盘的位置。(后果自负)
  39. ping -n 3 127.1>nul
  40. cls
  41. echo 正在清除病毒文件,请稍等...&echo.
  42. for /f "delims=" %%i in ('dir /b /s /ad "!dirve!"') do (
  43. echo 已清理:  %%i\%%~ni.exe>>U盘查杀记录.txt 2>nul
  44. del /q /f "%%i\%%~ni.exe"
  45. del /q /f ntdelect.com
  46. del /q /f RECYCLER.exe
  47. del /q /f Recycled.exe
  48. del /q /f EXPLORER.exe
  49. del /q /f autorun.exe
  50. del /q /f autorun.inf..txt
  51. )
  52. echo.&echo 清除完毕! &echo.
  53. echo 准备修复注册表
  54. ping -n 1 127.1>nul
  55. set in=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
  56. set on="HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
  57. set at=HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\MUICache
  58. reg delete %at%\ /v C:\WINDOWS\system32\XP-F84AA1B5.EXE /f
  59. reg delete %in%\ /v XP-F84AA1B5 /f
  60. reg delete %in%\ /v C:\WINDOWS\system32\XP-F84AA1B5.EXE /f
  61. reg delete %in%\ /v XP-D89C5E64 /f
  62. reg delete %in%\ /v XP-F84AA1B5.EXE /f
  63. reg delete %in%\ /v XP-D89C5E64.EXE /f
  64. reg delete %in%\ /v XP-23520AE1.EXE /f
  65. reg add %on% /v Hidden /t reg_dword /d 1 /f
  66. reg add %on% /v HideFileExt /t reg_dword /d 0 /f
  67. reg add %on% /v ShowSuperHidden /t reg_dword /d 1 /f
  68. del "%USERPROFILE%\「开始」菜单\程序\启动\*.*" /q /f
  69. cls &echo.
  70. echo 修复完成 &echo.
  71. echo 准备建立免疫文件。&echo.
  72. ping -n 3 127.1>nul
  73. goto Anti
  74. :Anti
  75. cls
  76. title U盘病毒免疫
  77. echo.
  78. echo 正在创建免疫文件夹...
  79. for %%c in (c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do (
  80. if exist %%c:\autorun.inf del /f/s/q/a %%c:\autorun.inf
  81. md %%c:\autorun.inf
  82. attrib +r +a +s +h %%c:\autorun.inf
  83. md %%c:\autorun.inf\WilliamBill.....\
  84. ) >nul 2>nul
  85.    echo.
  86.    echo.
  87. )
  88. echo 免疫文件夹成功创建,病毒成功查杀,你可以进入你U盘下的查杀记录查看。 & echo.
  89. echo 完成U盘杀毒,和U盘免疫。本程序准备退出。
  90. ping -n 4 127.1>nul
  91. goto :thanks
  92. :thanks
  93. @ echo msgbox "谢谢你的使用——Power by 恒">msg.vbs
  94. @msg.vbs
  95. del msg.vbs
  96. exit
复制代码
================
更新历史
================
4月27日 加入免疫功能(对全部盘进行免疫)。加入注册表修复功能,加入进程结束功能。全自动化操作!taskkill结束进程方式改为 ntsd
================
5月3日 去除结束进程功能(ntsd弹窗烦人,taskkill有些机子不能用,像我的winxp home 版的就不行。),改进注册表值的删除等。
================
由于附件的限制,请把UVkiller.txt改成UVkiller.bat 运行!

我使用后不能找到U盘?为何??
另外,求教这个批处理是如何自动寻找U盘的啊???

TOP

我是新手   能不能把你们改完的    加强完的   重新写一下这个批处理呢
我想用。。。

TOP

回复 14楼 的帖子

呵呵,我还没看出来嘛。

TOP

回复 3楼 的帖子

哥们你这段也不行耶。。。

TOP

回复 11楼 的帖子

哦!下一个版本改进!

TOP

回复 10楼 的帖子

就是用set
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 9楼 的帖子

哦,懂了,用 set行吗?

TOP

回复 7楼 的帖子

意思是把HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run这种重复出现的路径赋值给一个变量,然后reg delete的时候用那个变量就行了。你可以根据自己的风格来决定是否采取这个方法。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 3楼 的帖子

恩,谢谢!我还是个新手,写这个东西我想了很久了。就是为了帮老师杀掉这些可恶的U盘病毒呵呵!

TOP

回复 4楼 的帖子

言之有理,但是这个注册表的变量我还是不知道应该怎么写,如果结束进程还有同时删除病毒文件的话,应该用什么命令获得病毒的路径呢?

TOP

回复 5楼 的帖子

具备病毒几大特征的都应该叫病毒,而不是取决于它是否能用哪种方法杀掉。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

1、其实没必要去检测存不存在进程;不存在时,最多会有错误提示,屏蔽掉即可。

2、注册表部分,还是引进一些变量好些吧,整个路径很长,又很多重复部分,引进变量会使整个代码看起来简洁整齐很多。

3、多用for,精简代码

4、功能中最重要一点,用taskkill或NTSD不能保证能够结束掉病毒进程,因为病毒进程往往不止一个,而且这些进程之间相互监控,一旦发现对方被结束即调用对方,而病毒进程未结束,则何谈删除病毒文件?因此,这里单独运行的taskkill或NTSD可能无法解决此病毒问题。个人建议:在结束病毒进程的同时删除病毒体 (慎重)...

TOP

请各位帮我看看
for %%b in (fun.exe dc.exe ds.exe XP-D89C5E64.exe XP-F84AA1B5.exe XP-23520AE1.exe) do if exist %%b ( taskkill /f /im %%b
)
这个代码行不行!

TOP

返回列表