dir / r и выходной поток в Windows Machine - PullRequest
0 голосов
/ 25 мая 2018

Сегодня у нас был вызов в нашем классе Cybersec, и в какой-то момент (в Windows Machine через терминал) я нашел интересный файл с dir, который называется root.txt

К more root.txtЯ получил вывод Look deeper..., который заставил меня попробовать dir /a, чтобы увидеть, скрыто ли что-то.Однако результата нет.

Через некоторое время профессор дал нам подсказку использовать dir /r, который имел такой вывод:

..
05/24/2018  05:25 PM                14 root.txt
                                    137 root.txt:confidential.txt:$DATA
..

Кто-то обнаружил, что мы можем читать confidential.txt, используя more < root.txt:confidential.txt

Что именно здесь происходит?А что делает /r? 1019 *

1 Ответ

0 голосов
/ 16 июня 2018

NTFS хранит файл в виде коллекции потоков , которые также называются NTFS "атрибутами".Я предпочитаю использовать имя «поток», поскольку «атрибут» обычно относится к флагу атрибута файла в потоке файла $STANDARD_INFORMATION, например «скрытый», «системный» и «только для чтения».Два типа потока, которые обычно используются непосредственно программами Windows, - это данные и индекс (т. Е. $DATA и $INDEX_ALLOCATION).

Файл NTFS всегда имеет поток данных по умолчанию (анонимный), например, «имя файла :: $ DATA» или, проще говоря, просто «имя файла».Он также может иметь альтернативные (именованные) потоки данных, такие как «имя файла: имя потока: $ DATA».Каталог может иметь именованные потоки данных, но не по умолчанию, поскольку его анонимный поток является индексом имени файла.Опция /r команд CMD dir вызывает FindFirstStreamW и FindNextStreamW для каждого файла или каталога в списке, чтобы вывести список $DATA потоков.

AnКаталог NTFS имеет индекс $FILE_NAME, который называется «$ I30», например, «dirname: $ I30: $ INDEX_ALLOCATION».Этот индекс также называется псевдонимом анонимно, например, "dirname :: $ INDEX_ALLOCATION" или, проще говоря, просто "dirname".Он может быть перечислен через FindFirstFile и FindNextFile.

Именованные индексы для других типов потоков также возможны.Например, том NTFS имеет индекс точки повторной обработки в своем зарезервированном каталоге «$ Reparse» по адресу «\ $ Extend \ $ Reparse: $ R: $ INDEX_ALLOCATION».Для перечисления этого индекса требуется специальный запрос к каталогу, поэтому FindFirstFile использовать нельзя.FindFirstVolumeMountPoint и FindNextVolumeMountPoint перечисляют этот индекс для поиска точек монтирования на томе, то есть IO_REPARSE_TAG_MOUNT_POINT повторных точек, которые нацелены на пути GUID тома.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...