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

Рубрика: Windows
14 января 2016

Приветствую Вас, уважаемые читатели блога webcodius.ru. Файловая система NTFS обладает интересной возможностью поддержки альтернативных потоков данных (Alternate Data Stream, ADS). Технология подразумевает под собой, то, что каждый файл в файловой системе NTFS может иметь несколько потоков, в которых могут храниться данные. Проводник и большинство других приложений работают только со стандартным потоком и не могут получить данные их альтернативных. Таким образом с помощью технологии ADS можно скрывать данные, которые не удастся обнаружить стандартными способами.

Поддержка альтернативных потоков данных была добавлена в NTFS для совместимости с файловой системой HFS, использующейся на MacOS.

Немного теории

Бесплатный видеоурок Создание Интернет-магазина на OpenCart

В файловой системе NTFS файлы имеют атрибуты. Один из атрибутов $DATA является атрибутом данных. В свою очередь атрибут $DATA может иметь несколько потоков. По умолчанию существует один основной поток $DATA:"", который называют неименованным. С этим потоком как раз и работает проводник windows. При желании к файлу можно добавить несколько именованных потоков (например $DATA:"potok1"), которые будут содержать различные не связанные между собой данные.

По умолчанию все данные, записываемые в файл, попадают в основной неименованный поток данных. И при открытии файла мы видим только основной поток. Альтернативные потоки NTFS, которые есть у файла, скрыты от пользователя и штатными средствами их не увидеть. Поэтому удалив файл с потоками, содержащими объемные данные, можно заметить, что места на устройстве хранения данных освободилось значительно больше, чем занимал файл по мнению того же Проводника. Альтернативными потоками часто пользуются вирусы, которые могут прописать себя в именованый поток какого-нибудь безобидного файла.

Для работы с альтернативными потоками можно использовать специальные программы, либо командную строку.

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

Бесплатный видеоурок Создание Интернет-магазина на OpenCart

Создать альтернативный поток можно с помощью консольной команды echo.

Для начала откроем командную строку cmd.exe и с помощью команды echoсоздадим текстовый файл example.txt и запишем в него текст:

echo Главный поток>example.txt

Следующей командой запишем данные в альтернативный поток. Для этого после названия файла ставите двоеточие (:) и даете название потоку:

echo Альтернативный поток>example.txt:test

Теперь если открыть файл example.txt в любом тестовом редакторе, то будет виден только первый текст «Главный поток»:

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

Получить информацию содержащуюся в потоке можно с помощью команды more:

more <example.txt:test

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

Увидеть содержимое потока можно не только в командной строке. Например, открыть альтернативный поток в популярном текстовом редакторе Notepad++ можно с помощью следующей команды:

«C:\Program Files (x86)\Notepad++\notepad++.exe» example.txt:test

альтернативный поток в notepead++

Обычный Блокнот может открывать только те потоки, название которых заканчивается на «.txt». Для примера, добавим к нашему файлу поток test.txt:

echo Альтернативный поток для блокнота>example.txt:test.txt

И откроем его в блокноте:

notepad.exe example.txt:test.txt

альтернативный поток в блокноте

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

Для примера добавим к нашему файлу поток с изображением img.jpg. Для этого воспользуемся командой type:

type img.jpg>example.txt:img.jpg

В результате мы получили обычный текстовый файл. Если открыть его обычным способом: двойным щелчком через проводник, то откроется текстовый редактор с содержимым главного потока:

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

Чтобы открыть содержащееся в альтернативном потоке изображение, например в Paint-е, достаточно воспользоваться командой:

mspaint example.txt:img.jpg

картинка в альтернативном потоке

Что самое интересное альтернативные потоки не увеличивают видимый объем файла. Так если к текстовому файлу размером 1 Кб добавить видео размером 30 Гб, то проводник все равно покажет размер файла 1 Кб.

Также потоки можно добавлять для папок и даже для разделов жесткого диска. Делается все также как и для файлов:

echo Текст в папке>c:\test:hide.txt

И открываем в блокноте:

notepad c:\test:hide.txt

Так как наличие альтернативных потоков никак не отображается в проводнике и других файловых менеджерах, самый простой способ их обнаружить это воспользоваться командой dir /R:

просмотр потоков

Скрытие приложений в альтернативных потоках и их запуск

Бесплатный видеоурок Создание Интернет-магазина на OpenCart

Поместить исполняемые файлы в альтернативные потоки также легко как и обычные файлы. Для примера возьмем наш файл example.txt и поместим приложение Блокнот (notepead.exe) в поток hideapp.exe:

type C:\Windows\system32\notepad.exe>example.txt:hideapp.exe

Чтобы запустить скрытый Блокнот используется следующая команда:

start .\example.txt:hideapp.exe

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

На этом все, до новых встреч!

Получай статьи почтой:

Похожие статьи:


Комментарии
  1. Наталья

    Спасибочки за подробную инструкцию по созданию альтернативных потоков)) Будем пробовать) =)

    15 сентября 2016 21:30

Оставить комментарий




Подписаться, не комментируя -