胡焦24

You got a dream, you gotta to protect it!

站内搜索

备用数据流/交换数据流的理解

发布日期:2026-02-26 |文章分类: 默认分类

在 NTFS 中,一个文件不仅可以有 “主数据流”,还可以有多个 “备用数据流”(Alternate Data Streams,简称 ADS),这个 “备用数据流” 通常也叫 “交换数据流”

平时常见的文件内容都是属于主数据流,比如下面命令可以创建的普通文件

echo hello > test.txt

备用数据流的文件名需要带了一个冒号指示,可以理解为备用数据流也是一个文件,依附主文件存在,主文件可以存在多个备用数据流

创建一个备用数据流的方式如下

echo secret > test.txt:hidden.txt

这个备用数据流在磁盘上不可见(显示隐藏文件也是看不见的),当主文件删除的时候,备用数据流也会被一起删除

通过 dir 命令的 r 参数进行列举备用数据流

还可以通过 more 命令查看备用数据流的内容

在代码中进行读写备用数据流的时候,和普通文件没有区别,唯一的区别 OpenFile 的时候,指定的是备用数据流文件名,如 test.txt:hidden.txt

如果在创建备用数据流的时候,没有指定前面的文件名,如 :hidden.txt,那么创建的备用数据流将寄生于当前目录上

这会被一些恶意软件使用,在根目录下创建寄生文件,无法通过手动删除的方式清除备用数据流,只能通过程序/命令或者工具来进行清理