» » » Что такое альтернативные потоки данных в Windows
Информация к новости
  • Просмотров: 1 858
  • Автор: admin
  • Дата: 22-08-2019
22-08-2019

Что такое альтернативные потоки данных в Windows

Категория: Windows / Функционал Windows

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

Что такое альтернативные потоки данных в Windows


Ну ладно, это понятно, но откуда Windows узнала, что вы скачали файл с интернета? Если честно, тема эта довольно старая, с корнями, уходящими еще в эпоху Windows NT, но поскольку число новых пользователей, ничего об этой версии не ведающих, постоянно растет, считаем нужным времени от времени ее освещать. Другой вопрос, найдете ли вы полученным знаниям практическое применение. 

Что, собственно, представляет собой файл? Если говорить максимально доступным языком это контейнер, в котором хранятся некие данные. Возьмем обычный текстовый документ, созданный в блокноте. Пустой текстовый файл — это оболочка, а то, что в него записано — полезное содержимое или контент, отображаемый в текстовом редакторе или вьювере. Но в файл может быть записана и другая информация, которая не отображается в текстовом редакторе, например, метаданные.

Эти дополнительные сведения хранятся в так называемых потоках данных, по-английски Alternate Data Stream или ADS, являющимися свойствами атрибутов, из которых по представлению NTFS состоит любой файл. Атрибуты в NTFS играют примерно ту же роль, что и массивы данных. В свою очередь свойства атрибутов могут быть как основными, так и альтернативными. Вернее, основным может быть только один поток, безымянный, именно в нём хранится полезное содержимое файла. 

Так, записанный в текстовый файл текст содержится в основном потоке атрибута $DATA ($dаta:""). Разобьем его на части. $DATA — это название атрибута, двоеточие — это разделитель, а то, что содержится между прямыми кавычками есть название потока. Поток с пустым именем в NTFS является основным, все остальные именованные потоки — альтернативными. Например, поток $dаta: "Stream1" — альтернативный. 

Как записать данные в альтернативный поток? Самый простой способ — воспользоваться командной строкой. Запишем для примера в текстовый файл content.txt, уже содержащий текст «Привет», скрытую строку «Совершенно секретно». Открываем командную строку и выполняем в ней такую команду:
echo "Совершенно секретно" > D:\content.txt:stream1 

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

Но это впечатление обманчиво, файл уже содержит скрытый текст, который вы можете прочитать только в командной строке командой: more < D:\content.txt:stream1

Записать в альтернативный поток можно не только текст, но и любые другие данные, например, исполняемые файлы, так что если когда-нибудь ваш антивирус вдруг найдет в обычном текстовом документе что-то опасное, не удивляйтесь. 

А теперь возвратимся к тому, откуда Windows в курсе, что файл был скачан с интернета. А потому, что в процессе его передачи в альтернативной поток Zone.Identifier, хранящий сведения о зоне безопасности, браузером были записаны соответствующие данные. Проверим присутствие альтернативных потоков в полученном из интернета скрипте WUModule.ps1. Открываем командную строку, переходим в ней в каталог с файлом и выполняем команду:
 dir /r

В результате в консоли будут выведены имена всех файлов в выбранной папке с указанием их размера в байтах и атрибутов, в данном примере $DATA с альтернативными потоками. Как можно видеть из скриншота выше, файл 1.tхt не имеет альтернативных потоков, файл content.tхt содержит альтернативный поток stream1, а файл скрипта WUModule.ps1 включает альтернативный поток Zone.Identifier, указывающий, что файл был получен из некой зоны. Для получения более подробных сведений можно использовать PowerShell. Проверим тот же скрипт. 

Запускаем консоль, выполняем команду Get-Item D:/WUModule.ps1 -Stream * и видим, что в файл содержит атрибут $DATA с потоком Zone.Identifier. Уточняем данные командой Get-Content D:/WUModule.ps1 -Stream Zone.Identifier. В результате получаем не только номер зоны безопасности, но и URL-адрес ресурса, с которого был скачан файл. Точно так же можно получить сведения и о других альтернативных потоках. Разница во второй команде лишь в том, что вместо Zone.Identifier нужно указать название потока, которое было получено в ходе выполнения первой команды.

Метки к статье: Системные функции

Дорогой посетитель, Вы можете задать на сайте любой вопрос и обязательно получите ответ!
<
Grey3

25 августа 2019 15:59

Информация к комментарию
  • Группа: Посетители
  • ICQ: {icq}
  • Регистрация: 20.05.2018
  • Статус: Пользователь offline
  • Публикаций: 0
  • Комментариев: 30
Отличная информация. Я в курсе о наличии альтернативных потоков в файлах NTFS, но вот о возможности их чтения я не знал! Я полагал, что там лежит нечто зашифрованное.
<
Aндрей

3 сентября 2019 16:19

Информация к комментарию
  • Группа: Гости
  • ICQ: {icq}
  • Регистрация: --
  • Статус:
  • Публикаций: 0
  • Комментариев: 0
Здравствуйте! Познавательно. Как это можно использовать?
<
admin

3 сентября 2019 16:31

Информация к комментарию
  • Группа: Администраторы
  • ICQ: {icq}
  • Регистрация: 2.04.2011
  • Статус: Пользователь Онлайн
  • Публикаций: 1 783
  • Комментариев: 39 126
Андрей,
Долго объяснять, тема узкопрофильная, специфическая. Если вам действительно интересно, введите в поисковик запрос:
  • альтернативные потоки данных пример использования

Добавление комментария

Имя:*
E-Mail:
Комментарий:
Вопрос:
Сколько будет 2+2=?
Ответ:*

 

НАВИГАЦИЯ

 

Архив новостей Ноябрь 2019 (6)
Октябрь 2019 (10)
Сентябрь 2019 (12)
Август 2019 (13)
Июль 2019 (14)
Июнь 2019 (13)
^
Копирование материалов сайта разрешается только с гиперссылкой на источник