考了很多文章,搜集了很多资料整理而成。
好的用途可以用来隐藏个人资料,防止误删,病毒免疫等等。
至于坏的方面,当然也可用来隐藏木马等等,就看你怎么用了。
还有一个没有搞明白,资料上也没找到,请知道的指点一下,
名称里含有"\"的文件或文件夹如何建立和删除。

下面进入正文,首先介绍几个基本的操作和dos命令
(1)如何进入命令行窗口:,
       开始---运行,或者win+R,打开运行窗口,之后输入cmd回车;
(2)相关dos命令
       /?              任何一个dos命令后加该参数表示查看帮助,最常用的命令!!
       md              建立文件夹;可以建立多层目录下的文件夹,比如 mkdir \a\b\c\d 。
       copy          复制文件
       xcopy          复制文件和目录树
       rd              删除文件夹,参数/s表示删除目录树,即包括子文件夹和文件;/q表示不用确认
       del              删除文件,可以使用通配符。/f强制删除只读文件,/q表示不用确认
         在删除命令后面跟上.参数就可以避免Windows检查文件名的合法性,
             因此可以删除含有Windows保留字或非法名字的文件。 
       dir /X           显示为非 8dot3 文件名产生的短名称。
(3)以下均假设当前目录为在D盘根目录,在命令行窗口输入D:回车即可
(4)UNC 路径格式,就是网上邻居的路径格式,比如d:\temp的UNC 路径为\\.\d:\temp

1,利用Windows以设备命名文件夹拒绝服务漏洞
新建以下这些名字的文件(或文件夹):aux、com1、com2、prn、con、nul,系统会提示无法建立。
我们可以在命令行窗口中建立,然后将文件copy进去,这样,文件打不开也删不掉。

实现过程:
切换到DOS命令行状态;其次在MS-DOS窗口的命令行提示符下,
通过“cd”命令进入到要创建文件夹所在的目录,
之后在DOS命令行下再输入字符串命令“md+设备名+\”,单击回车键后,
在指定目录下一个名称为设备名的特殊文件夹就出现了。
考虑到设备文件夹在Windows状态下是不能被删除的,为此善于使用设备文件夹,
我们有时能可以用它来保存一些重要的信息,以防止这些信息被他人随意删除掉。

对于含有保留字的文件,当我们发出删除指令的时候,Windows会检查被删除的文件是否有合法的路径,如果你的文件名含有Windows认为的非法字符或保留字,那么删除就会失败。我们有3种方法可以删除这类文件:

a)采用Linux或其他非Windows的操作系统,以Linux/Unix为例,可以使用rm命令删除.

b)使用命令行工具的一个特殊参数解决: 
RD. 设备名\
DEL.

c)对于文件,如果可以使用通配符,那么也可以采用通配符解决: 
DEL PR?.* 
DEL LPT?.*

d)要删除d盘下的 aux 文件夹,可在命令提示符下执行:rd /s \\.\d:\aux。
再比如要删除d盘temp文件夹下的 nul.exe 文件,在命令提示符下执行:del \\.\d:\temp\nul.exe 即可。

2,利用WINDOWS命名漏洞命名的文件, 比如test.,即文件最后有一个点.
         建立这个文件的话可以用 md test..\  
         也可以新建一个test,然后用WINRAR改test为test..\
         这个文件夹双击无法打开,但是可以在运行窗口输入 d:\test..\ 进入,进入后可进行文件的各项操作。
         删除的话用             rd /s /q test.. 
         如果test.是文件的名字,那么删除要用         del /f /q test..\

3.名为空的文件夹.这里所说的空名文件夹,主要指的是文件夹名称为空白,具体地说就是文件夹的名称为空格字符,这类特殊文件夹不仅可以在MS-DOS窗口中被正常访问,而且还可以在Windows窗口中被访问到,甚至我们能借助WinZip之类的压缩工具来对其进行压缩或解压缩操作。
  
       (1)建立使用 md "\test\ \"
       这时可以看到D盘根目录下的test文件夹下多了一个没有名字的文件夹,双击可以打开,也可以在运行中输入D:\test\ \
       可以在里面建立文件或者删除文件。 
       删除用       rd "D:\test\ \"

(2)切换到DOS命令行状态;在MS-DOS窗口的命令行提示符下,
通过“cd”命令进入到要创建空白文件夹所在的目录,
之后在DOS命令行下再输入字符串命令“md+空格”,紧接着按下键盘上的Alt功能键,同时在数字小键盘上直接输入数字“255”,这样一来空格字符的ASCII码就会自动出现在“md”命令之后,单击回车键后,在指定目录下一个名称为空白的特殊文件夹就出现了。善于使用空白文件夹,我们有时能将一些重要的隐私信息隐藏其中,从而实现保护隐私安全的目的。

4.长文件名或非法字符导致文件或文件夹无法删除
可以暂时把路径中某些目录改名字,或在命令行模式下使用8.3格式。
例如,“Linux Faq”的目录变成8.3就是“LINUXF~1”了,通过“Linuxf~1”就能进入目录了,
此后就可以使用Del命令删除指定文件了。如果需要删除目录,则使用Rd命令。  
也可以进入要删除文件的目录后输入“dir>del.bat”,把当前目录的文件列表输入到批处理命令文件“del.bat”中,
然后修改该批命令文件,仅保留文件或目录名,并在文件或者目录名称前增加“del ”或者“rd”,运行批处理命令即可删除。 
(经常有rar文件无法解压,改个文件名后就可以了)

还有一种方法,就是利用windows目录长度不能超过256字节的特性,可以利用subst命令将
一长度达到256字节的目录映射为虚拟盘:"subst b: testtesttesttesttesttesttes…………………………"。
然后在虚拟出来的b:中建立一个长文件名目录"testtesttesttestte…………",然后将一可执行文件copy到该
路径下,去掉虚拟盘符映射:"subst b: /d",这样用资源管理器是无法进入该目录的,杀毒软件也无法扫描
该路径下的文件,而且在资源管理器中是无法删除该目录的,但可以使用8.3文件格式来运行该可执行文件:
"c:\testte~1\testte~1\test.exe",从而达到隐藏的目的。

5.改文件名称,系统自身带有很多的CLSID。用的就是它了.
eg:要隐藏的文件名为 a,则把它改成 a.{CLSID} 这里的CLSID有很多,如下只是一部分:

文件名.{00020810-0000-0000-C000-000000000046}       excel文档
文件名.{00020900-0000-0000-C000-000000000046}         word
文件名.{5ef4af3a-f726-11d0-b8a2-00c04fc309a4}       回收站(满)
这3个只是文件夹图标变了,打开后还是隐藏不了,原形毕露:

文件名.{2227a280-3aea-1069-A2de-08002b30309d}       打印机
文件名.{21ec2020-3aea-1069-A2dd-08002b30309d}         控制面板
文件名.{208d2c60-3aea-1069-A2d7-08002b30309d}       网上邻居
文件名.{992cffa0-F557-101a-88ec-00dd010ccc48}         拨号上网
文件名.{1a9ba3a0-143a-11cf-8350-444553540000}         收藏夹
比较特别,双击打不开,用右键盘第2个"打开"就行了...

文件名.{0CD7A5C0-9F37-11CE-AE65-08002B2E1262}         该名之后目录为空
文件名.{645FF040-5081-101B-9F08-00AA002F954E}       回收站(空)
文件名.{20D04FE0-3AEA-1069-A2D8-08002B30309D}       我的电脑
这一办法也是比较普通的...

或者在需要隐藏的文件夹里建立desktop.ini文件也可以达到效果,
把这个批处理保存为.bat文件,在要隐藏的文件里执行就可以了:

@echo off
echo [.ShellClassInfo]>desktop.ini
echo CLSID={645FF040-5081-101B-9F08-00AA002F954E}>>desktop.ini
REM 改进后有些地方如有空格的地方也可以用所以加上"号
attrib +s +h "%cd%"
rem 其实只要将上面加上隐藏就可以了不用将下面这行隐藏
attrib +s +h desktop.ini
echo cacls %cd% /t /c /e /g %username%:f>..\恢复隐藏.bat
echo attrib -s -h %cd%>>..\恢复隐藏.bat
cacls %cd% /t /c /e /p %username%:n

原理就是同上面的重命名差不多...

======================================================
一个具体的例子,引用别人的:

最近使用了一款名叫 E-文件夹加密大师,网上有强人用winrar也把它破了,在这就不说了
该软件利用的是windows的一个文件名漏洞,即windows不能删除com1.……和以“.”最后等命名的文件夹(这种文件夹名字只有在dos 模式才能创建,而且不是常规方式md c:\xxx..\             注意最后的"\"。com1文件夹的创建方法,"md \\.\c:\com1",删除输入"rd \\.\c:\com1";)。即,这哪是加密         只是简单得把“加密”的文件或文件夹放到以着种名字命名的文件夹下面

不小心把加密数据删除掉了,数据没了好办,用finaldata打开那个假的回收站就有了。可是

留下个隐藏的Th…….db文件夹,打开后是-sys文件夹-然后是com1.{21ec2020-3aea-1069-a2dd-08002b30309d}文件夹,该文件夹用的是控制面板的图标。(因为{}中的windows中的地址

打印机.{2227A280-3AEA-1069-A2DE-08002B30309D}
控制面板.{21EC2020-3AEA-1069-A2DD-08002B30309D}
我的电脑.{20D04FE0-3AEA-1069-A2D8-08002B30309D}
回收站.{645FF040-5081-101B-9F08-00AA002F954E}

于是双击该文件夹便打开了控制面板,但地址栏中显示的是该com1.{21ec2020-3aea-1069-a2dd-08002b30309d}文件夹的地址。

1、 com1.{21ec2020-3aea-1069-a2dd-08002b30309d}这个文件夹是关键,利用了一个WINDOWS的漏洞,即使用AUX,COM1,COM2,PRN,CON,NUL为文件名建立的文件(夹),即不能打开也不能删除。所以程序会将待加密的文件复制到此文件夹中,使其无法访问和删除,此其一;
2、在最后一级目录中有一个文件录名称为《 XXX.》,请注意文件名后的《.》,当建立的文件夹名称包含这个小点后,同样,该文件录即不能打开,也不能删除,LZ把它放在这里应该是为了保险起见,或者出于其它目的,俺还不太确定,此其二;
3、 com1.{21ec2020-3aea-1069-a2dd-08002b30309d}里{}内的ID为控制面板,RECYCLED为程序自动建立的文件夹,中有desktop.ini文件以及{645FF040-5081-XXXX-9F08-00AA002F954E}文件夹,其作用都是为了将文件录伪装成回收站,此其三。

知道了原理只能算是半途,因为删除会报错windows中删除会出现地址不存在的错误

而DOS下 rd       d:\ XXX\com1.{21ec2020-3aea-1069-a2dd-08002b30309d} 也不行

然后是rd       D:\XXX\ 目录非空,不行。接着用 rd /s D:\XXX\       提示是否删除,输入Y,回车。

报错,程序正被使用……。这步就是关键了打开任务管理器 ,结束explorer.exe进程!

再次Y,回车。然后通过任务管理器运行 explorer,又见到桌面了,打开D盘看,那个文件夹不见了

如果recycled里边也有可以接着 rd /s D:\recycled 和recycle 回收站没了下次打开自己会生成 !

原文连接:http://blog.csdn.net/jiankangshiye/article/details/6800305。

windows特殊文件或文件夹的更多相关文章

  1. 使用Windows EFS(怎么给文件夹加密)进行文件加密

    和Windows BitLocker一样,Encrypting File System(EFS,加密文件系统)是Windows内置的一套基于公共密钥的加密机制,可以加密NTFS分区上的文件和文件夹,能 ...

  2. Windows内核开发中如何区分文件对象究竟是文件还是文件夹?

    今天有同行问了一个问题,Windows文件过滤驱动里的如何去区分一个对象是文件还是文件夹?我花了1小时左右翻阅了一些微软的文档以及以前的遗留代码,发现在WDK的帮助文档中是这么定义的: FILE_OB ...

  3. Windows Store App JavaScript 开发:获取文件和文件夹列表

    在应用程序中有时可能需要获取用户库中的内容,以便执行相关的操作.如果要获取某个用户库中的内容,需要先获取到这个用户库,获得用户库可以通过Windows.Storage命名空间中的KnownFolder ...

  4. Windows Store App JavaScript 开发:选取文件和文件夹

    前面提到过,文件打开选取器由FileOpenPicker类表示,用于选取或打开文件,而文件夹选取器由FolderPicker类表示,用来选取文件夹.在FileOpenPicker类中,pickSing ...

  5. windows环境下创建 .文件夹

    一.windows环境下创建 .文件夹 1.新建一个文件夹 2.重命名为.properties.(名字前后都加点) 二.windows环境下创建 .文件 1.上面的方法对文件同样适用 2.运行CMD, ...

  6. 如何为基于windows验证的站点的某个页面、文件或文件夹单独设置匿名访问

    在MOSS的项目中,我们经常碰到要单独为基于windows验证的站点的某个页面.文件或文件夹单独设置匿名访问即不登录就可以直接访问.比如说站点的A的某些图片或文件URL存在B站点下的文件夹下.此时访问 ...

  7. FTP文件夹打开错误,Windows无法访问此文件夹

    错误提示: Windows 无法访问此文件夹,请确保输入的文件夹是正确的,并且你有权访问此文件夹.    解决方法/步骤如下    1.请确保输入的文件夹是正确的,并且你有权访问此文件夹.可以在浏览器 ...

  8. Delphi 弹出Windows风格的选择文件夹对话框, 还可以新建文件夹

    Delphi 弹出Windows风格的选择文件夹对话框, 还可以新建文件夹     unit Unit2; interface uses  Windows, Messages, SysUtils, V ...

  9. Windows服务器Pyton辅助运维--01.自动Copy文件(文件夹)到远程服务器所在目录

    Windows服务器Pyton辅助运维 01.自动Copy文件(文件夹)到远程服务器所在目录 开发环境: u  Web服务器: Windows Server 2008 R2 SP1 IIS 7.5 u ...

  10. Windows 10开发基础——文件、文件夹和库(一)

    原文:Windows 10开发基础--文件.文件夹和库(一) 主要内容: 1.枚举查询文件和文件夹 2.文本文件读写的三种方法——创建写入和读取文件 3.获得文件的属性 枚举查询文件和文件夹 先了解一 ...

随机推荐

  1. CXF框架入门(重点)

    l CXF是一个开源的webservice框架 l CXF支持的协议:SOAP.XML/HTTP等 l CXF可以很好的和spring集成 l CXF可以部署到tomcat.jboss.jetty等服 ...

  2. tft屏图像文字一起显示

    2010-05-04 21:06:00 M16内部flash只有16k,要做数码相框,只能用usart通信了.明天继续研究.

  3. 使用Wisdom RESTClient进行自动化测试,如何取消对返回的body内容的校验?对排除的JSON属性字段不做校验?

    使用 Wisdom RESTClient 进行自动化测试 REST API,默认是对返回HTTP状态码和body内容都进行严格匹配和校验. (1). 如果每次触发API返回的body内容是动态变化的, ...

  4. 双屏互动h5

    情侣H5:https://www.25xt.com/allcode/10837.html 双屏互动:https://www.digitaling.com/articles/18180.html

  5. Golang字符串函数认识(二)

    package main import ( "fmt" "strings" ) func main(){ //返回字符在指定字符串中最后一次出现的位置 last ...

  6. mysql、oracle分库分表方案之sharding-jdbc使用(非demo示例)

    选择开源核心组件的一个非常重要的考虑通常是社区活跃性,一旦项目团队无法进行自己后续维护和扩展的情况下更是如此. 至于为什么选择sharding-jdbc而不是Mycat,可以参考知乎讨论帖子https ...

  7. 写给大忙人的ELK最新版6.2.4学习笔记-Logstash和Filebeat解析(java异常堆栈下多行日志配置支持)

    接前一篇CentOS 7下最新版(6.2.4)ELK+Filebeat+Log4j日志集成环境搭建完整指南,继续对ELK. logstash官方最新文档https://www.elastic.co/g ...

  8. java泛型中<?>和<T>区别

    public static void printColl(ArrayList<?> al){                Iterator<?> it = al.iterat ...

  9. String类的知识点(不断更新)

    知识点1.String类位于java.lang包中,具有丰富的方法计算字符串的长度.比较字符串.连接字符串.提取字符串2.数组的length是属性,字符串的length()是方法3.import ja ...

  10. You have new mail in /var/spool/mail/root

    centos7.5 查看邮件的方式: [root@web01 code]# yum -y install mailx #安装mailx [root@web01 code]# mail #执行mail命 ...