标题: [系统相关] [分享]批处理版U盘病毒查杀与防御 1.0 Beta 2 [打印本页]
作者: BillGates 时间: 2009-4-27 17:36 标题: [分享]批处理版U盘病毒查杀与防御 1.0 Beta 2
由于学校的电脑病毒横行,特此本人写了一个批处理,可以删除和文件夹同名的exe,和个别的exe。供大家参考参考,大家可以帮忙改进一下,免疫功能已经加入(每次都会免疫,虽然麻烦了点,但是也是为了安全着想),和参考铁甲兵版的注册表修复(每次都会修复,也是处于安全的角度考虑的),更多功能后续加入。批处理本来就应该共享,大家应该把源码顺便贴出来,我的源码如下。- @echo off
- title U盘病毒查杀 1.0 Beta 2
- echo power by 恒 2009-4-25 编译 &echo.
- echo 网址:http://5a83.5d6d.com &echo.
- echo 你可以任意修改,但修改版若出现任何问题,本人概不负责,不得用于商业用途。&echo.
- ping -n 2 127.1>nul
- cls
- echo 正在检测您系统中的可移动设备
- title U盘设备检测
- setlocal enabledelayedexpansion
- for /f "skip=1 tokens=1,2 delims=\" %%i in ('fsutil fsinfo drives^|find /v ""') do (
- set genre=%%i
- set genre=!genre:~-2!
- for %%a in (!genre!) do (
- fsutil fsinfo drivetype %%a | findstr "移动" >nul 2>nul && if /i not "%%a"=="A:" (
- set 5a83.5d6d.com=%%a
- echo.
- echo 找到可移动存储设备, 盘符为%%a 。
- echo.
- echo 正在处理U盘隐藏文件,请等待...
- echo.
- !5a83.5d6d.com!
- cd\
- attrib /s/d -r -h -s -a *.* >nul 2>nul
- call :kill
- )
- )
- )
- cls
- title 未发现U盘(warning)
- color fc
- echo 检测完毕!没有检测到U盘存在!本程序即将退出!
- echo 网址:http://5a83.5d6d.com
- ping -n 4 127.1>nul
- goto :thanks
- :kill
- title U盘病毒查杀(当前位置!5a83.5d6d.com!盘)
- echo 当前位置 !5a83.5d6d.com!盘,请你确认!这个是你的U盘的位置。(后果自负)
- ping -n 3 127.1>nul
- cls
- echo 正在清除病毒文件,请稍等...&echo.
- for /f "delims=" %%i in ('dir /b /s /ad "!dirve!"') do (
- echo 已清理: %%i\%%~ni.exe>>U盘查杀记录.txt 2>nul
- del /q /f "%%i\%%~ni.exe"
- del /q /f ntdelect.com
- del /q /f RECYCLER.exe
- del /q /f Recycled.exe
- del /q /f EXPLORER.exe
- del /q /f autorun.exe
- del /q /f autorun.inf..txt
- )
- echo.&echo 清除完毕! &echo.
- echo 准备修复注册表
- ping -n 1 127.1>nul
- set in=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
- set on="HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
- set at=HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\MUICache
- reg delete %at%\ /v C:\WINDOWS\system32\XP-F84AA1B5.EXE /f
- reg delete %in%\ /v XP-F84AA1B5 /f
- reg delete %in%\ /v C:\WINDOWS\system32\XP-F84AA1B5.EXE /f
- reg delete %in%\ /v XP-D89C5E64 /f
- reg delete %in%\ /v XP-F84AA1B5.EXE /f
- reg delete %in%\ /v XP-D89C5E64.EXE /f
- reg delete %in%\ /v XP-23520AE1.EXE /f
- reg add %on% /v Hidden /t reg_dword /d 1 /f
- reg add %on% /v HideFileExt /t reg_dword /d 0 /f
- reg add %on% /v ShowSuperHidden /t reg_dword /d 1 /f
- del "%USERPROFILE%\「开始」菜单\程序\启动\*.*" /q /f
- cls &echo.
- echo 修复完成 &echo.
- echo 准备建立免疫文件。&echo.
- ping -n 3 127.1>nul
- goto Anti
- :Anti
- cls
- title U盘病毒免疫
- echo.
- echo 正在创建免疫文件夹...
- 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 (
- if exist %%c:\autorun.inf del /f/s/q/a %%c:\autorun.inf
- md %%c:\autorun.inf
- attrib +r +a +s +h %%c:\autorun.inf
- md %%c:\autorun.inf\WilliamBill.....\
- ) >nul 2>nul
- echo.
- echo.
- )
- echo 免疫文件夹成功创建,病毒成功查杀,你可以进入你U盘下的查杀记录查看。 & echo.
- echo 完成U盘杀毒,和U盘免疫。本程序准备退出。
- ping -n 4 127.1>nul
- goto :thanks
- :thanks
- @ echo msgbox "谢谢你的使用——Power by 恒">msg.vbs
- @msg.vbs
- del msg.vbs
- exit
复制代码
================
更新历史
================
4月27日 加入免疫功能(对全部盘进行免疫)。加入注册表修复功能,加入进程结束功能。全自动化操作!taskkill结束进程方式改为 ntsd
================
5月3日 去除结束进程功能(ntsd弹窗烦人,taskkill有些机子不能用,像我的winxp home 版的就不行。),改进注册表值的删除等。
================
由于附件的限制,请把UVkiller.txt改成UVkiller.bat 运行!
作者: BillGates 时间: 2009-4-27 17:37
请各位帮我看看
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
)
这个代码行不行!
作者: youxi01 时间: 2009-4-28 07:52
1、其实没必要去检测存不存在进程;不存在时,最多会有错误提示,屏蔽掉即可。
2、注册表部分,还是引进一些变量好些吧,整个路径很长,又很多重复部分,引进变量会使整个代码看起来简洁整齐很多。
3、多用for,精简代码
4、功能中最重要一点,用taskkill或NTSD不能保证能够结束掉病毒进程,因为病毒进程往往不止一个,而且这些进程之间相互监控,一旦发现对方被结束即调用对方,而病毒进程未结束,则何谈删除病毒文件?因此,这里单独运行的taskkill或NTSD可能无法解决此病毒问题。个人建议:在结束病毒进程的同时删除病毒体 (慎重)...
作者: Batcher 时间: 2009-4-28 15:08 标题: 回复 5楼 的帖子
具备病毒几大特征的都应该叫病毒,而不是取决于它是否能用哪种方法杀掉。
作者: BillGates 时间: 2009-4-28 21:24 标题: 回复 4楼 的帖子
言之有理,但是这个注册表的变量我还是不知道应该怎么写,如果结束进程还有同时删除病毒文件的话,应该用什么命令获得病毒的路径呢?
作者: BillGates 时间: 2009-4-28 21:25 标题: 回复 3楼 的帖子
恩,谢谢!我还是个新手,写这个东西我想了很久了。就是为了帮老师杀掉这些可恶的U盘病毒呵呵!
作者: Batcher 时间: 2009-4-28 21:32 标题: 回复 7楼 的帖子
意思是把HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run这种重复出现的路径赋值给一个变量,然后reg delete的时候用那个变量就行了。你可以根据自己的风格来决定是否采取这个方法。
作者: BillGates 时间: 2009-4-29 17:16 标题: 回复 9楼 的帖子
哦,懂了,用 set行吗?
作者: Batcher 时间: 2009-4-29 17:42 标题: 回复 10楼 的帖子
就是用set
作者: BillGates 时间: 2009-4-30 17:35 标题: 回复 11楼 的帖子
哦!下一个版本改进!
作者: BillGates 时间: 2009-5-3 11:31 标题: 回复 3楼 的帖子
哥们你这段也不行耶。。。
作者: BillGates 时间: 2009-5-3 15:57 标题: 回复 14楼 的帖子
呵呵,我还没看出来嘛。
作者: guilong 时间: 2009-10-30 11:28
我是新手 能不能把你们改完的 加强完的 重新写一下这个批处理呢
我想用。。。
作者: zhanglintc 时间: 2010-6-16 18:47
我使用后不能找到U盘?为何??
另外,求教这个批处理是如何自动寻找U盘的啊???
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |