Board logo

标题: 中毒了....为什么用for列出病毒文件却无法删除? [打印本页]

作者: zerocq     时间: 2007-2-7 05:25    标题: 中毒了....为什么用for列出病毒文件却无法删除?
前几天被朋友催着开了一个传奇私服给他们玩,没几天就关了

结果这几天程序老是出错,全是和winsock.dll有关的

刚刚才发现整个硬盘的所有目录下都有一个隐藏的wsock32.dll

查了一下才知道是一个老木马,专盗传奇号的

卡巴竟然没反应:mad:只好自已手动来

用for /f %a in ('dir /a/s wsock32.dll|find ":\"')查找出所有分区的病毒共508个

但do后边del "%a"\wsock.dll却提示找不到文件

是隐藏的原因吗,要怎么解决

我用系统的搜索功能查出来才62个,差太多应该清不干净吧:(

作者: ccwan     时间: 2007-2-7 05:37
del后面加参数就行了。
具体请在命令行下输入del/?

作者: anqing     时间: 2007-2-7 06:39
楼主的 这句,我看不懂
'dir /a/s wsock32.dll|find ":\"'
为什么find “:\"
??

作者: kernelv     时间: 2007-2-7 07:16
Originally posted by anqing at 2007-2-6 05:39 PM:
为什么find “:\"

因为楼主说
所有目录下都有一个隐藏的wsock32.dll
所以用find ":\"可以过滤出目录,而不列出文件。

to:楼主
因为del删除不了隐藏的文件,以及有系统属性的文件。所以在do后先加一句
attrib -s -h -r "%a\wsock32.dll"
就行了。

用搜索功能的话需要在高级选项中选中搜索隐藏及系统的选项。

作者: anqing     时间: 2007-2-7 07:29
dir /a/s wsock32.dll|find ":\"
这一句,能显示硬盘的所有目录吗?
我单独运行dir /a/s只显示当前的目录???

作者: anqing     时间: 2007-2-7 07:37
for /f %a in ('dir /a/s wsock32.dll|find ":\"')
所列出的软件目录,前面有一个空格,楼主用加“”的方法过滤了,可是还有“的目录”,不用过滤吗???

作者: kernelv     时间: 2007-2-7 11:27
dir /a/s wsock32.dll|find ":\"
这一句,能显示硬盘的所有目录吗?
我单独运行dir /a/s只显示当前的目录???

这要看你当前目录是在哪了,如果你当前目录没有子目录当然只显示当前目录了。具体请查看 /s 的含义。
for /f %a in ('dir /a/s wsock32.dll|find ":\"')
所列出的软件目录,前面有一个空格,楼主用加“”的方法过滤了,可是还有“的目录”,不用过滤吗???

在 for 中,如果不指定token关键字,默认总是取第一个字段的。也就是如果列举出来的目录中如果不含有空格,那么 %a 只会表示为该目录的路径,而不会含有 “的目录”这三个字。

不过如果路径中含有空格就出错了。不好意思,我刚才也没仔细看。楼主的代码还有待改善。