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

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

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

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

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

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

Некоторые консольные команды позволяют создать и отобразить содержимое потока NTFS, например команда echo может позволить создать альтернативный поток для текстового файла. Чтобы было понятно, как это работает, рассмотрим пример. Введите следующее в командой строке:

echo Hello Happy Bulldozer > hello.txt
echo Hello World > hello.txt:test

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

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

more < hello.txt:test

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

streams.exe hello.txt


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

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

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

Стандартный Блокнот будет приписывать расширение txt к имени потока. Если вы хотите использовать его, потоки именовать надо следующим образом:

echo Hello World > hello.txt:test.txt

Тогда выполненная из cmd.exe команда даст положительный результат:
notepad hello.txt:test.txt

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

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

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

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

Winreview.ru можно найти в Вконтакте, Facebook и Twitter. Присоединяйтесь!

Комментарии

  1. equinox

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

  2. Сергей Ткаченко

    Оригинально.

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

  3. equinox

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

    Ну, наверно, что-либо секретное или личное, я так думаю.

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

  4. Сергей Ткаченко

    Понятно. Спасибо за ответ.

  5. freetushkan

    Никто не знает, а ntfs3g с потоками работает?

  6. Сергей Ткаченко

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

Написать комментарий