不知道大家在使用电脑过程中有没有遇到一些文件或文件夹无法删除的情况。当然,无法删除的原因有很多,对于普通的由于“文件正在使用中”而无法删除推荐使用360的解锁功能,虽然也不是太好用,但是目前没有发现那款软件比它好(win7系统上无奈才用360,但是用xp系统的我推荐一款软件:超级巡警暴力删除(点击下载)。只能在xp上用,可以删除任何文件,无论文件是否被使用,包括操作系统在内。)。
这次主要讲解的是一些由Windows系统漏洞造成的无法删除情况。一些恶意软件往往利用系统漏洞建立一些畸形的非法文件,最常见的就是后边带…的文件夹。据我所知一共有五中方法建立一个非法文件,列举如下(以下是cmd命令,在cmd中运行,md是指创建文件夹):
1、md c:\…\ 这种方法建立的文件夹是隐藏的、不可打开、无法删除的,当然隐藏不是指普通的隐藏,这种隐藏在Windows自带的资源管理器中无论如何也看不到。
2、md “c:\test / “ 注意加空格和引号。这种方法建立的文件夹可见,可打开,可在该文件夹下创建、拷贝、删除文件,但不可删除。典型特征是文件夹末尾有空格。
3、md c:\test…\ 这是最常见的。这种方法建立的文件夹可见,不可打开,不可删除,典型特征是文件夹尾部有“.”。
4、md \\.\c:\con\ 这种方法是强行建立一个与设备名相同的文件,造成无法删除,根据系统实际情况,也可能根本无法访问。因为文件夹名必须与设备名相同,所以这种方法典型的特征是文件夹名是固定的以下之一:con、aux、com1、com2、prn、nul。
5、超长文件名。一些文件名过长的文件夹进行嵌套,导致内层文件夹因路径名过程无法访问。比如C:\111…1\111…11\111….1\2\ 这时候最里边的2文件夹就没办法访问了
以上就是我所了解的非法文件夹建立方法。注意上边所提到的无法访问、无法删除都是指Windows自带的资源管理器,用cmd命令完全可以操作这些文件夹,否则有什么意义?用Windows自带管理器操作这些文件时,往往会看到错误提示:目标不存在、系统找不到该项目、路径错误、参数错误、MS-DOS功能无效等等类似的提示。
接下来就讲解如何操作这些文件夹。
对于第一种,这种方法基本已经失效,因为它只在win98上有效,估计现在没有用win98了,所以跳过。
对于第二种和第三种,这两种方法可以用一个杀手锏必杀。就是利用别名,我们不用考虑这个文件夹到底是怎么个结构,也不用考虑到底是怎么建成的,只要看一下它的别名就可以自由操作了。看别名的方法是用dir命令+/x参数。比如 dir c:\ /x 这个命令就是查看c盘下的所有文件,并显示别名。如图:
我们利用别名就可以随意操作这个文件了,比如:进入cd c:\AB259~1\ 删除rd c:\AB259~1\。
对于第四种,这种方法创建的非法文件比较特殊,能不能用Windows自带管理器访问要看系统具体情况,而且没有别名,那怎么办呢?我们来回忆一下它的原理:利用网络位置建立一个与设备名相同的非法文件。这句话说明之所以自带管理器无法操作是因为它在网络位置,那么我们在访问的时候加上网络位置就可以了!网络位置即在路径前加\\.\。比如:进入cd\\.\c:\con\ 删除 rd\\.\c:\con\。 这种文件夹一共就那么几种,应该很好识别!
对于第五种,这种方法很好破解,不就是因为路径长而无法访问吗?那我们就从最外层入手,先把最外层的文件夹名字改成短的,逐层深入,慢慢这个体系就瓦解了。为什么不从里边入手,因为里边路径太长,Windows系统不允许访问,更不允许重命名。如果这些超长文件夹被做了手脚(与上边的漏洞融合),导致无法重命名,那么。。。就要请出我们的cmd杀手锏了:别名!这些超长文件夹绝对是有别名的!从另一个角度看,访问这些超长文件夹也可以用8.3命名法,也就是用短文件名访问。所谓8.3命名法就是文件名不超过8个,扩展名不超过3个,比如123456789.txt写成123456~1.txt。
欢迎指正、交流、补充!