原创 恢复被病毒隐藏的文件夹

2011-10-6 14:05 2980 6 10 分类: 软件与OS

 

.vbsauturun病毒都是好几年前的事了,刚开的时候很疯狂,现在基本是个杀个毒软件就能杀掉~~

之前参考网络上的代码写过一次了~感觉也很好使,可是当时也没写笔记,代码也没存~现在找不到了呀!!!!!

 

这种病毒通过autorun.ini自启动除autorun.ini及病毒代码已晚,或者杀出不掉~~另外,将各个磁盘根目录下的各文件夹设问系统文件夹并隐藏,并生成一个和各文件夹名称相同的exe的病毒文件,所以,如果点击 文件夹.exe一样会再次中毒。

好了,病毒机理就介绍到这里,下面说说杀毒后的后遗症~~

 

杀毒后,autorun.ini,病毒代码,和文件夹.exe会被删除,但文件夹却仍被隐藏,单纯设置 显示隐藏文件夹 无效果,取消隐藏 系统文件夹后会显示出来,但是右击文件夹属性会发现文件夹的隐藏属性不可更改,其原因就是这些文件夹属性被设置为系统文件夹,且在windows窗口下无法更改,所以必须使用dos命令attrib来设置。

 

首先介绍一下attrib

attrib指令的格式和常用参数为

  ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [[drive:] [path] filename] [/S [/D]]

  + 设置属性。

  - 清除属性。

  R 只读文件属性。

  A 存档文件属性。

  S 系统文件属性。

  H 隐藏文件属性。

  [drive:][path][filename]

  指定要处理的文件属性。

  /S 处理当前文件夹及其子文件夹中的匹配文件。

  /D 也处理文件夹。

/L 处理符号链接和符号链接目标的属性。

这里用到的指令是:attrib -s -h 文件夹/文件名称

          或者是  attrib -s -h 文件夹/文件名称 /s /d

区别是,前者只设置对应的文件夹/文件,后者包含其子文件及子文件夹。

按照这个写法在dos命令窗口中即可更改文件夹属性,令其显示出来,但这么做,要一个文件夹一个文件夹的设置,太麻烦,所以可用一个循环来实现。

 

其次介绍一下dir指令:

dir指令的格式和常用参数为:

DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N] [/O[[:]sortorder]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4]4

  常用使用说明

  /A 显示具有指定属性的文件。

  属性 D 目录 R 只读文件

  H 隐藏文件 A 准备存档的文件

  S 系统文件 I 无内容索引文件

  L 解析点 - 表示的前缀

  /B 使用空格式(没有标题信息或摘要)

  /C 在文件大小中显示千位数分隔符。这是默认值。用 /-C

  禁用分隔符显示。

  /N 新的长列表格式,其中文件名在最右边。

  /O 用分类顺序列出文件。

  dir x: /a:d 只显示X盘下所有的目录

  dir x: /a:-d 只显示X盘下所有的文件

如果不写盘符,默认为当前目录。

所以dir /a/b 为输出当前目录下所有的文件及文件夹。

 

最后,利用以上两个命令,写出如下指令:

 for /f "delims=" %%i in ('dir /a/b') do attrib -s -h "%%i"

 或者 for /f "delims=" %%i in ('dir /a/b') do attrib -s -h "%%i" /s /d

 整条语句的意思是先输出当前目录下所有文件及文件夹,然后分别设置去除系统文件夹、隐藏属性。区别在于后者包含子文件夹及子文件。

故完整bat代码如下,拷贝在记事本里,然后改名为show.bat即可。

@echo off

setlocal enabledelayedexpansion

title 修改系统属性和隐藏属性

color 2f

mode con: cols=60 lines=25

cls

echo.

echo  适用于win7

echo ---------------------------------------------------------

echo.

echo  使用方法:

echo  方法1、将要显示的文件夹或盘符拖到此bat文件上,即可运行

echo  方法2、放到需要显示文件夹的目录,双击即可

echo.

echo.----------------------------------------------------------

pause

echo.

for /f "delims=" %%i in ('dir /a/b') do (

echo  %%i

attrib -s -h "%%i"

)

echo 设置完毕

start "" ""

pause

 

PARTNER CONTENT

文章评论4条评论)

登录后参与讨论

用户377642 2012-7-7 18:32

将一个文件拖到bat图标上,获取此文件名及后缀名:%~n1%~x1。 其中%~n1为文件名,%~x1为后缀名。

用户377642 2012-7-7 18:30

bat批处理 if 命令: http://www.jb51.net/article/14986.htm

用户377642 2012-7-5 22:34

调用cmd.exe ,使用 call cmd.exe

用户377642 2012-7-5 22:27

从窗口接收输入参数 @echo off set /p var=请输入用户名: echo 您输入的用户名为%var% pause
相关推荐阅读
用户377642 2011-10-24 08:51
windows注册表的添加及删除
添加键值: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Sess...
用户377642 2011-10-04 18:11
画PCB用什么软件
现在画PCB的软件很多,你要根据你的需求来选择;1、国内用的比较多的是protel,protel 99se,protel DXP,Altium,这些都是一个公司发展,不断升级的软件;当前版本是Alti...
用户377642 2011-09-24 15:45
Java SE -- 03.面向对象基础(1)
面向对象与面向过程的比较:对于面相对像与面向过程可以用一个例子解释,如果一个木匠要做一个盒子,那么:  面向对象:先想好要做的盒子,之后再去找好相应的工具,再做盒子。  面向过程:不管要做什么样的盒...
用户377642 2011-09-22 23:58
Java SE -- 01.标识符、数据类型
关键字: boolean break byte case catch char class continue default do double else extends...
用户377642 2011-09-22 23:49
Java SE -- 02.运算符、分支、循环语句、数组
java运算符:    +,-,*,/,%,++,--  关系运算符  >,<,>=,<=,==,!=  布尔运算符  !,&,|,^,&&,|...
EE直播间
更多
我要评论
4
6
关闭 站长推荐上一条 /3 下一条