Что такое каталог C: \ $?

2696
Mehrdad

Когда я запускаю Process Monitor, я вижу ReadFileзапросы, отправленные на C:\$Directory.

Что именно это означает?


Обновить:

Я также вижу $MapAttributeValue, что выглядит незнакомым.

10
`$` Представляет собой скрытую или административную / системную папку / файл. выглядит как папка `$ recycle.bin`. αғsнιη 9 лет назад 0

2 ответа на вопрос

5
haimg

Обновление: я исследовал эту проблему дальше (так как я заметил такое же поведение на моем собственном компьютере и волновался, что это какая-то вредоносная программа), и теперь я считаю, что мой первоначальный ответ был на самом деле неверным. Вот что я нашел сейчас:

  1. Несколько разных процессов считываются из этого файла и из разных смещений, но одинаковой длины: 4 КБ (ровно одна страница памяти).
  2. Есть операции ReadFile, но нет открытия файла, что бессмысленно.
  3. Глядя на трассировку стека, я вижу, что во всех запросах содержится ошибка страницы в трассировке, например, чтение этого файла внутри IoPageRead(), функция ядра, которая считывает страницы из файла подкачки в память.
  4. Эти чтения происходят в C: \ $ Directory и V: \ $ Directory в моей системе, на двух дисках, на которых хранятся файлы подкачки, и нигде больше.

Основываясь на этом исследовании, я твердо верю, что это «чтение файла» является неким артефактом Process Monitor, и реальное чтение происходит в файле подкачки. Я понятия не имею, почему ProcMon перечисляет путь как C: \ $ Directory.

Сейчас я не думаю, что этот каталог C: \ $ является настоящим метафайлом NTFS . Сейчас я не думаю, что это может быть незаконная деятельность (вирус или другое вредоносное ПО).

Я уверен, что это не № 3 или № 2. Так что это, вероятно, № 1. Это на самом деле ничего не говорит мне, хотя ... Mehrdad 12 лет назад 2
обычно это назначается для explorer.exe. Так что, думаю, это не № 2 или № 3. Diskilla 12 лет назад 0
Я полностью изменил свой ответ, извините. haimg 12 лет назад 0
Я добавил награду. Если есть какие-либо официальные / неофициальные документы или какие-либо другие результаты, было бы здорово. Это что-то довольно сложное в гугле. Stefano Borini 9 лет назад 0
4
harrymc

$ Directory и $ MapAttributeValue, скорее всего, являются кодовыми именами системных областей на диске NTFS, и эти ссылки исходят из программ, открывающих или создающих файлы.

Эти имена, вероятно, относятся к метафайлам, определяемым википедией как:

NTFS содержит несколько файлов, которые определяют и организуют файловую систему. Во всех отношениях большинство этих файлов структурированы, как и любой другой пользовательский файл (наиболее характерным является $ Volume), но они не представляют прямого интереса для клиентов файловой системы. Эти метафайлы определяют файлы, выполняют резервное копирование критических данных файловой системы, сохраняют изменения файловой системы, управляют распределением свободного пространства, соответствуют ожиданиям BIOS, отслеживают неправильные единицы распределения и хранят информацию о безопасности и использовании дискового пространства. Весь контент находится в безымянном потоке данных, если не указано иное.

$ Directory - это, скорее всего, главная таблица файлов (MFT), которая является каталогом для всех файлов и папок, где в качестве метаданных хранятся имя файла, дата создания, права доступа (с помощью списков контроля доступа) и размер. Любая программа, которая открывает или создает файл или папку, обращается к этой области диска.

$ MapAttributeValue, скорее всего, является областью списков атрибутов, описанной как:

Для каждого файла (или каталога), описанного в записи MFT, существует линейный репозиторий потоковых дескрипторов (также называемых атрибутами), упакованных вместе в одну или несколько записей MFT (содержащих так называемый список атрибутов), с дополнительным заполнением для заполнения фиксированной 1 КБ размера каждой записи MFT, и это полностью описывает эффективные потоки, связанные с этим файлом.

Я не понимаю, вы говорите, что `$ Directory` - это то же самое, что и` $ MFT`? Кроме того, списки атрибутов принадлежат отдельным записям файлов и хранятся внутри отдельных записей; это не глобальные файлы, хранящиеся в корне диска ... Mehrdad 9 лет назад 0
Хорошо, я тоже удалил свой, хотя мой первый комментарий остается в силе (я все еще не понимаю, что вы подразумеваете под фразами типа «MFT, который является каталогом для всех файлов и папок»). Mehrdad 9 лет назад 0
@Mehrdad: я пытался сказать, что в нем определены все файлы и папки, поэтому, когда программа открывает или создает файл, к ней должна обращаться операционная система. harrymc 9 лет назад 1
Я до сих пор не могу понять ваш комментарий. Единственный файл, в котором определены * все * файлы и папки, это `\ $ MFT`. На диске нет метафайла или другого места с именем `\ $ Directory`. Я не понимаю о чем ты говоришь. Mehrdad 9 лет назад 0
@Mehrdad: MFT = $ MFT. Слово «каталог» в тексте является частью описания MFT, а не его названия. harrymc 9 лет назад 0
Впрочем, я видел там много раз `C: \ $ MFT`. Вы говорите, что оба относятся к одному и тому же? Я не понимаю, почему они будут, но хорошо ... Mehrdad 9 лет назад 0

Похожие вопросы