C:\$Directory 是什么?

C:\$Directory 是什么?

当我跑步时进程监控,我看到ReadFile已发送至 的请求C:\$Directory

这到底是什么意思?


更新:

我也看到了$MapAttributeValue,看起来也不熟悉。

答案1

更新:我进一步研究了这个问题(因为我注意到我自己的电脑也有同样的行为,并且担心这是某种恶意软件),现在我相信我最初的答案实际上是错误的。以下是我现在发现的内容:

  1. 几个不同的进程从这个文件读取,并且来自不同的偏移量,但长度相同:4K(恰好一个内存页)。
  2. 有 ReadFile 操作,但没有打开文件,这没有什么意义。
  3. 查看堆栈跟踪,我发现所有请求都在跟踪中包含一个页面错误,例如,此文件读取位于IoPageRead()内核函数内,该函数将页面从分页文件读入内存。
  4. 这些读取发生在我的系统上的 C:\$Directory 和 V:\$Directory 上,这两个驱动器上保存着分页文件,而不发生在其他地方。

根据这项研究,我坚信这种“文件读取”是某种进程监视器的产物,而真正的读取发生在页面文件中。我不知道为什么 ProcMon 将路径列为 C:\$Directory。

我现在不认为这个 C:\$Directory 是一个真正的NTFS 图元文件。我现在不认为这可能是某种非法活动(病毒或其他恶意软件)。

答案2

$Directory 和 $MapAttributeValue 很可能是NTFS磁盘,这些引用来自打开或创建文件的程序。

这些名字可能属于图元文件,维基百科定义为:

NTFS 包含多个定义和组织文件系统的文件。从各方面来看,这些文件的结构与其他用户文件($Volume 是最特殊的)一样,但文件系统客户端并不直接感兴趣。这些元文件定义文件、备份关键文件系统数据、缓冲文件系统更改、管理可用空间分配、满足 BIOS 期望、跟踪坏分配单元以及存储安全和磁盘空间使用信息。除非另有说明,否则所有内容都在未命名的数据流中。

$Directory 很可能是主文件表(MFT)是所有文件和文件夹的目录,文件名、创建日期、访问权限(通过使用访问控制列表)和大小作为元数据存储在其中。任何打开或创建文件或文件夹的程序都会访问磁盘的此区域。

$MapAttributeValue 很可能是属性列表区域,描述为:

对于 MFT 记录中描述的每个文件(或目录),都有一个流描述符(也称为属性)的线性存储库,这些流描述符一起打包在一个或多个 MFT 记录(包含所谓的属性列表)中,并使用额外的填充来填充每个 MFT 记录固定的 1 KB 大小,并且完整描述了与该文件关联的有效流。

相关内容