NTFS альтернативные потоки данных включены. и.. папки

Я играл с NTFS ADS и обнаружил, что не могу использовать ни один из них на. и.. папки

Я старался:

  • ..: $ I30: $ INDEX_ALLOCATION
  • ..:: $ INDEX_ALLOCATION
  • ..:: $ INDEX_ROOT
  • ..: $ DATA

у кого-нибудь есть понимание того, почему это так? есть ли способ обойти это?

Спасибо

3 ответа

, и.. не являются настоящими папками, это просто символы для "этой папки" или "родительской папки", поэтому, конечно, вы не можете прикрепить к ним ADS.

Добавляя к тому, что написано, это и .. являются специальными символами, представляющими текущую и родительскую папки соответственно, если вы пишете в ADS папки (например, echo 123 > myfolder:streamname), то запуск внутри покажет вам, что.:streamname:$DATA существует и запущен dir /r из подпапки myfolder покажет ..:streamname:$DATA по аналогии.

В $INDEX_ALLOCATION тип атрибута - тот, который используется для папок (например, echo 123 > newfolder::$INDEX_ALLOCATION), и может использоваться для создания папок, но вы не можете просто выводить в него некоторые данные (внутренне NTFS хранит данные каталога внутри него).

echo 123 > :streamname:$DATA напишет это в ., и он также будет виден из родительского каталога.

Создание каталога с потоками требует двух шагов:

1.Создайте каталог:

      mkdir J:\ads-test:$I30:$INDEX_ALLOCATION

2. Создайте поток для этого каталога:

      echo xyz > ads-test:StreamName:$DATA

Теперь вы можете перечислить и увидеть каталог stream-

      J:\>dir /R
07/20/2022  03:49 PM    <DIR>          ads-test
                                 6 ads-test:StreamName:$DATA
Другие вопросы по тегам