Подтвердить что ты не робот

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

Сегодня я видел эту странную магическую систему NTFS: каждый файл может иметь несколько потоков данных. В принципе, у файла может быть файл a.txt размером 0b, но может быть любое количество байтов, скрытых в отдельном потоке данных для этого файла. Это строго связанная с NTFS магия, и я не вижу никакой благородной причины для этих потоков. Вы можете искать потоки NTFS с помощью утилиты streams от Sysinternals. Это покажет вам, что в основном каждый из этих неприятных файлов thumbs.db поставляется с дополнительным потоком данных.

Хорошо, теперь я видел эту магическую работу в системе Windows NT4, потоки, добавленные в файлы, скопированные, удаленные (с помощью вышеупомянутой утилиты), но теперь я пытаюсь это сделать дома в моей системе Win XP, но хотя я могу обнаружить существующие потоки, я не могу отображать их содержимое, не могу создавать новые или очень многое, когда я использую синтаксис filename:streamname.

Я получаю эту ошибку:

Имя файла, имя каталога или Недопустимый синтаксис метки тома.

Пример: Выход из утилиты streams:

c:\DOWNLOADS>streams.exe -s .

Streams v1.56 - Enumerate alternate NTFS data streams
Copyright (C) 1999-2007 Mark Russinovich
Sysinternals - www.sysinternals.com

c:\DOWNLOADS\1013.pdf:
   :Zone.Identifier:$DATA       46

c:\DOWNLOADS>type 1013.pdf:Zone.Identifier
The filename, directory name, or volume label syntax is incorrect.

Почему я не могу отобразить содержимое альтернативного потока данных?

Глядя на документацию Microsoft на Как использовать альтернативные потоки данных NTFS", я вижу, что это относится к моей операционной системе, хотя они упоминают, что эти потоки не будут поддерживаться в будущем. Кто-нибудь может пролить свет на это?

4b9b3361

Ответ 1

В верхней части головы: NTFS datastreams были представлены в Windows NT 4.0 и были вокруг всех потомков (исключая win-95 потомки: 98, Me). В XP, Vista и Win 7 они все еще существуют. Пока версии Windows поддерживают NTFS, они будут поддерживать файловые потоки. Они будут поддерживать NTFS в течение длительного времени.

Ошибка, которую вы указали, описана на странице, которую вы видите в своем вопросе. Команда type не понимает потоки. Использование:

more < 1013.pdf:Zone.Identifier

Работа с потоками

Microsoft имеет только несколько команд, которые работают с потоками, фактически только <, > работают с потоками, и поэтому могут использоваться только команды, которые могут работать с этими операторами перенаправления. Я написал пару сообщений в блоге об альтернативных потоках данных о том, как вы все еще можете управлять потоками только с этими командами.

Потоки будут работать только с программами, которые предназначены для работы с ними, просто потому, что их нужно обрабатывать специально (сравнить точки соединения, а также функцию NTFS, но драйвер скрывает детали, и программам не нужно ничего делать специальные: они просто считают точку соединения реальным файлом).

Когда вы пытаетесь открыть поток файлов с помощью start filename:streamname, и программа говорит что-то вроде "незаконного имени файла" или "файл не найден", и вы уверены, что имя потока верное, то, скорее всего, программа не поддерживают потоки. Я заметил, что Notepad, Wordpad и Word/Excel работают правильно с потоками, хотя Word и Excel считают файлы опасными. Ниже приведены некоторые эксперименты.


ПРИМЕЧАНИЕ: вам кажется, что альтернативные потоки данных нечетны. Они странные, потому что они настолько скрыты, но многие основные файловые системы (HFS, NSS) имеют это, и концепция восходит к началу 80-х годов. Фактически, изначально потоки были добавлены в NTFS для взаимодействия с другими файловыми системами.

Ответ 2

Кстати, вы можете открыть AltDataStream с помощью блокнота:

notepad.exe 1013.pdf:Zone.Identifier

Кроме того, вы можете указать тип AltDataStream (не только с помощью Notepad, но и "полное имя потока" ):

1013.pdf:Zone.Identifier:$DATA

Ответ 3

Это строго связанная с NTFS магия

Не так - у Mac OS были эти с тех пор еще в тот же день, они называются forks в этом мире, и вы должны использовать ResEdit, чтобы добраться до них. классическое использование из них заключается в объединении медиа-активов вместе с исполняемым файлом.

Ответ 4

Одна возможная цель для альтернативного потока: метаданные. Можно добавить для документа большое описание, не затрагивая содержимое исходного файла.

Ответ 5

Win32 API отлично справляется с именами альтернативных потоков.

CMD, с другой стороны, делает некоторый фанковый анализ имени файла, когда возможно иметь */? расширение и barfs, когда присутствует ":". То, что копируются и печатаются, но выполняется простое перенаправление.

Ответ 6

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

Try:

start this_is_a.txt:ads.exe