Вы наверняка сталкивались с ситуацией, когда на попытку открыть загруженный с Интернета файл система вам отвечала вот таким окном:
Windows определяет, что файл был загружен с Интернета, помечен как потенциально опасный, и выводит соответствующее предупреждение.
Такую пометку файл получает, когда он был загружен при помощи браузера Internet Explorer, а также некоторых альтернативных браузеров (некоторых, но далеко не всех: например, при использовании Google Chrome пометка ставится, а при использовании Opera - нет). Я предлагаю вам посмотреть, как всё это работает "изнутри".
Вероятно, вы читали статью "Альтернативные потоки NTFS, или создание секретных файлов, существование которых на первый взгляд неочевидно". Если нет, стоит с ней ознакомиться хотя бы бегло, потому что пометка о получении файла из Интернета есть не что иное, как альтернативный поток NTFS, принадлежащий файлу, который вы скачали.
В этом легко убедиться, если выполнить команду DIR c ключом /R. Команда DIR /R включает вывод альтернативных потоков данных для файлов, которые присутствуют в её выводе.
Вот, к примеру, вывод команды DIR из папки, где я храню дистрибутивы приложения TeamViewer:
Как можно заметить, листинг файлов содержит дополнительный, альтернативный поток для каждого из дистрибутивов. Например, вот этот: TeamViewer6_10_Setup_ru.exe:Zone.Identifier.
Давайте воспользуемся стандартным приложением Windows "Блокнот", и откроем поток следующей командой:
[code]notepad.exe TeamViewer6_10_Setup_ru.exe:Zone.Identifier[/code]
Как вы можете видеть, альтернативный поток-пометка - не более чем обычный INI-файл с секцией [ZoneTransfer] и идентификатором зоны передачи. Присутствие подобного файла-альтернативного потока говорит системе, что файл получен из Интернет.
Снятие и установка пометки
Операционная система Windows позволяет отключить пометку (читать - удалить альтернативный zone-поток) непосредственно из свойств "меченного" файла:
Нажатие на кнопку "Разблокировать" удаляет альтернативный поток, в чем легко убедиться, снова выполнив команду dir /r:
Впрочем, ничего не мешает вам установить её обратно.
Снова выполняем команду:
[code]notepad.exe TeamViewer6_10_Setup_ru.exe:Zone.Identifier[/code]
На этот раз Блокнот выведет предупреждение, что файл, который мы пытаемся открыть, не существует (что не удивительно - мы только что его удалили).
Отвечаем "Да", и в качестве текста файла заносим уже знакомые нам строки:
ZoneId=3
Всё, сохраняем файл, закрываем Блокнот, и система снова считает файл небезопасным и полученным с Интернет.
К сожалению, средствами операционной системы нельзя удалять альтернативные потоки у нескольких файлов(команда DEL считает символ ":" недопустимым, а Проводник не имеет опции отображения альтернативных потоков), и это значит, что сразу с нескольких файлов признак загрузки с Интернет снять тоже нельзя.
Если же вам необходимо снять этот признак сразу с большого количества файлов, то поможет в этом ранее рассмотренная утилита streams, созданная Марком Руссиновичем.
Утилита streams поддерживает два необходимых ключа:
[code]streams [-s] [-d] <file or directory>[/code]
Здесь
- -s обрабатывать подпапки рекурсивно.
- -d удалять потоки
Таким образом, я удалю альтернативные потоки у всех EXE-файлов, запустив streams командой вида
[code]streams -d *.exe[/code]
Скачать streams можно здесь.
Внимание! Не запускайте streams командой вида
[code]streams -s -d D:\*.exe[/code]
Это может привести к непредсказуемым последствиям, вплоть до сбоев в работе системы и установленных приложений. Дело в том, что утилита streams не позволяет удалять конкретные потоки NTFS и удаляетвсе альтернативные потоки для каждого из файлов. Помимо пометки о получении файла из Интернет, в альтернативных потоках может содержаться какая-либо другая информация, которая нужна системе и/или другим приложениям.
💡Узнавайте о новых статьях быстрее. Подпишитесь на наши каналы в Telegram и Twitter.
Ссылка на streams битая (вы удалили windows.php, который должен редиректить)
Спасибо, ссылки поправил. На самом деле, я перетащил статью со старого движка. Вероятно, я что-то упустил при переносе.
У Nir Sofer есть удобная утилита для просмотра и управления потоками NTFS — AlternateStreamView.
Я на момент написания статьи о ней ничего не знал.