Альтернативные потоки NTFS, или создание секретных файлов, существование которых на первый взгляд неочевидно

Вы слышали что-нибудь о потоках NTFS? Весьма интересная функциональность файловой системы, которой можно найти практическое применение. Сегодня поговорим о том, что это и как этим можно пользоваться.

Для начала немного теории.
Поддержка альтернативных потоков данных была добавлена в NTFS для совместимости с файловой системой HFS от Macintosh, которая использовала поток ресурсов для хранения иконок и другой информации о файле. Они присутствуют в NTFS еще с самых ранних версий Windows NT. Суть технологии в том, что у файла на NTFS может быть несколько потоков, содержащих данные. Проводник и большинство популярных файловых менеджеров ограничены работой лишь сглавным потоком (не имеющим имени), представляющим собой основное содержимое файла. Потоки могут использоваться для хранения метаданных файла, таким образом они использовались в Windows 2000, насколько мне известно.

В Windows 7 альтернативные потоки NTFS, наличествующие у файла, штатными средствами не увидеть. И напрасно: адски хитрые вирусы, например, могут писать себя в потоки какого-нибудь вполне безобидного файла. Удалив файл с потоками, содержащими объёмные данные можно обнаружить, что места освободилось значительно больше, чем занимал файл по мнению Проводника.
Для просмотра имеющихся потоков мы будем пользоваться консольной утилитой streams.exe, созданной небезызвестным Марком Руссиновичем.

Как создать альтернативный поток NTFS

Некоторые консольные команды позволяют создать и отобразить содержимое потока NTFS, например команда echo может позволить создать альтернативный поток для текстового файла. Чтобы было понятно, как это работает, рассмотрим пример. Введите следующее в командой строке:
[code]echo Hello Happy Bulldozer > hello.txt
echo Hello World > hello.txt:test[/code]

А теперь откройте файл hello.txt в Блокноте:

Текст Hello World остался "за кадром", находясь в потоке с именем test. Если указать в имени открываемого файла и имя потока, открыть файл в потоке не получится: двоеточие - недопустимый символ для названия файла. Однако, можно воспользоваться командной строкой, которая несколько лояльней и позволит выполнить вот такую команду:
[code]more < hello.txt:test[/code]

Просмотр потоков NTFS, как я писал выше, можно выполнить через утилиту streams.exe
[code]streams.exe hello.txt[/code]

Я полагаю, тут всё понятно.

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

Продвинутые программы вроде Notepad++ справятся без особых усилий и отобразят вам содержимое потока:

Стандартный Блокнот будет приписывать расширение txt к имени потока. Если вы хотите использовать его, потоки именовать надо следующим образом:
[code]echo Hello World > hello.txt:test.txt[/code]
Тогда выполненная из cmd.exe команда даст положительный результат:
[code]notepad hello.txt:test.txt[/code]

Альтернативные потоки NTFS и файлы различных типов

У вас может сложится мнение, что область применения альтернативных потоков NTFS не простирается дальше текстовых файлов. Это не так. В следующем примере я добавил к файлу hello.txt поток, содержащий данные архива 7z:

Отмечу, что потоки можно создавать не только для файлов, но и для папок и даже для разделов жесткого диска.

Всё ограничено вашей личной фантазией и потребностями. Используя описанные приёмы, можно легко спрятать личную информацию от неподготовленного пользователя, например. Некая разновидность защиты от дурака, если хотите.

💡Узнавайте о новых статьях быстрее. Подпишитесь на наши каналы в Telegram и Twitter.

Судя по тому, что вы читаете этот текст, вы дочитали эту статью до конца. Если она вам понравилась, поделитесь, пожалуйста, с помощью кнопок ниже. Спасибо за вашу поддержку!

Автор: Сергей Ткаченко

Сергей Ткаченко создал этот сайт в далёком 2009 году, и с тех пор продолжает над ним работать, публикуя новые материалы о Windows и её приложениях практически каждый день.

Альтернативные потоки NTFS, или создание секретных файлов, существование которых на первый взгляд неочевидно: 6 комментариев

  1. К примеру, можно прятать в файл *.jpg шифроконтейнер TrueCrypt’а — двойная защита от дурака. На первый взгляд это обычная картинка, но в потоках у нее — гиговый файл контейнера. Главное, потом эту картинку случайно не удалить самому.

  2. Оригинально.
    Меня, кстати, всегда интересовал вопрос — а от какого именно дурака прячутся файлы? И какие именно? Мне даже на работе не приходится что-либо прятать.

  3. Сергей Ткаченко :Оригинально.Меня, кстати, всегда интересовал вопрос – а от какого именно дурака прячутся файлы? И какие именно? Мне даже на работе не приходится что-либо прятать.

    Ну, наверно, что-либо секретное или личное, я так думаю.
    Про способ с картинкой (в общем, с любым файлом) прочел в ветке про TrueCrypt на форуме ru-board.com.

  4. Могу проверить при случае. У меня есть оно в дебиане на второй машине

Обсуждение закрыто.

css.php