首页 > 代码库 > NFTS数据流

NFTS数据流

NFTS数据流

NTFS交换数据流(alternate data streams,简称ADS)是NTFS磁盘格式的一个特性,在NTFS文件系统下,每个文件都可以存在多个数据流,就是说除了主文件流之外还可以有许多非主文件流寄宿在主文件流中。它使用资源派生来维持与文件相关的信息,虽然我们无法看到数据流文件,但是它却是真实存在于我们的系统中的。创建一个数据交换流文件的方法很简单,命令为“宿主文件:准备与宿主文件关联的数据流文件”。


用NFTS数据流隐藏文件

1.请现在c盘下创建一个文件夹,MyTest。(最好是新建一个文件夹,否则后面就比较麻烦,具体解释见后面)

进入这个目录,新建一个txt文件,test.txt.写入数据 “this is test for ntfs.” 。

右击属性,可以查看一下其大小22字节,占用空间为4KB。

2.按 win + r,打开运行,输入cmd。进入c:\MyTest

输入:echo  这是数据流数据 > test.txt:shujuliuwenjian.txt

这样我们就创建了一个名为shujuliuwenjian.txt的文件,内容为“这是数据流数据”的数据流文件,并与宿主文件test.txt进行了关联。

3.接着在窗口输入dir命令,咦,看不到创建的数据流文件shujuliuwenjian.txt。

在资源管理器中查看目录c:\MyTest,也看不到shujuliuwenjian.txt。

那么再右击查看test.txt的属性,大小没有改变。

是不是很神奇?shujuliuwenjian.txt隐藏了。

那么怎么让shujuliuwenjian.txt现出原形呢?

4.follow me...

在cmd中输入:notepad  test.txt:shujuliuwenjian.txt

在打开的notepad中可以看到写入数据流的数据 “这是数据流数据”。

5.接下来,问题来了。。。

怎么删除shujuliuwenjian.txt呢?

如果前面你听从了我的建议新建了文件夹MyTest,那么直接删除文件夹就行了。

什么?!你直接在根目录下或者系统目录下创建的数据流文件?

好吧,那你只能借助工具来删除它。猛戳这里 下载工具


这个工具需要在cmd下运行

输入stream.exe 可以看到运行参数

删除数据流文件命令 stream.exe -d  数据流文件所在目录


6.另外,还可以创建不依赖文件的流。

如echo "这是数据流数据" > :shujuliuwenjian2.txt.

查看内容使用 notepad :shujuliuwenjian2.txt


这样就实现了用NFTS数据流隐藏文件。

数据流文件是不局限于文本文档的,任何文件都可以作为数据流文件,包括可执行程序,图片,声音等等。


msdn上对file streams的介绍:

http://msdn.microsoft.com/library/aa364404.aspx


NFTS数据流