Как сделать свой мультик в домашних условиях на компьютере

Добавлено: 20.10.2018, 21:13 / Просмотров: 93261

Закрыть ... [X]

Читатель блога Виктор не смог запустить скачанный из Интернета скрипт PowerShell. Внимательное чтение моих инструкций позволяло избежать проблемы, но корень ее был вовсе не в строгих политиках безопасности PowerShell.

Виктор скачал из галереи TechNet архив со скриптом PSWindowsUpdate.zip для управления Windows Update, о котором я рассказывал тут. Однако распакованный скрипт отказывался работать. Когда я подсказал читателю, что в первом пункте моих инструкций говорится о необходимости разблокировать архив, все пошло как по маслу.

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

Виктор попросил объяснить, почему система заблокировала скрипт, и откуда она знает, что архив был скачан с другого компьютера.

Честно говоря, сегодняшняя тема не нова, но я решил осветить ее в своем блоге по нескольким причинам:

  • Многие статьи написаны еще во времена Windows XP или Windows 7 и не учитывают встроенных возможностей более новых ОС Microsoft.
  • В одной из запланированных на ближайшее время статей эта тема затрагивается, и мне проще сослаться на материал, за актуальность и правильность которого отвечаю я сам.
  • У блога большая аудитория, и для многих читателей эта тема все равно окажется в новинку :)

[+] Сегодня в программе

Потоки данных NTFS

Windows черпает сведения об источнике файла из альтернативного потока данных (alternate data stream, далее ADS) 1 файловой системы NTFS. В свойствах файла она скромно пишет, что он с другого компьютера, но на деле знает чуть больше, как вы увидите дальше.

С точки зрения NTFS, файл – это набор атрибутов. Содержимое файла – это атрибут данных с именем $DATA. Например, текстовый файл со строчкой “Hello, World!” обладает атрибутом данных “Hello, World!”

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

В NTFS атрибут $DATA является потоком данных и называется основным или безымянным, потому что… не имеет имени. Формально он выглядит так:

$DATA:""

Здесь:

  • $DATA – имя атрибута
  • : – разделитель
  • "" – имя потока (в данном случае имя отсутствует – между кавычками ничего нет)

Дальше все просто. Если данные хранятся в безымянном потоке, то альтернативным становится и считается любой поток с именем. В английском языке он обозначается как alternate data stream.

Более подробная техническая информация есть в MSDN, а я предлагаю уже посмотреть на альтернативные потоки.

Управление альтернативными потоками данных в PowerShell

Для просмотра и удаления альтернативных потоков данных традиционно рекомендуют утилиту streams Марка Руссиновича. Но начиная с PowerShell 3.0, т.е. в Windows 8 и новее, можно воспользоваться PowerShell, чьи командлеты намного функциональнее.

Скопируйте и вставьте в PowerShell команды ниже.

# Создаем текстовый файл с текстом "Hello, World!" Set-Content -Path C:\temp\test.txt -Value "Hello, World!" # Считываем содержимое файла Get-Content -Path C:\temp\test.txt # Создаем в файле альтернативный поток под именем MyStream1 и записываем туда "Hidden Text" Set-Content -Path C:\temp\test.txt -Stream MyStream1 -Value "Hidden Text" # Выводим информацию обо всех потоках Get-Item -Path C:\temp\test.txt -Stream # Считываем содержимое альтернативного потока MyStream1 Get-Content -Path C:\temp\test.txt -Stream MyStream1 # Удаляем альтернативный поток MyStream1 Remove-Item -Path C:\temp\test.txt -Stream MyStream1 # Снова выводим информацию обо всех потоках (поток MyStream1 удалился) Get-Item -Path C:\temp\test.txt -Stream

Должна получиться такая картина:

Альтернативные потоки данных NTFS
Увеличить рисунок

Интересные особенности альтернативных потоков данных

В контексте примеров выше я хочу отметить несколько любопытных моментов.

Невидимые изменения

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

Интересно становится, когда файл открыт, скажем, в Notepad++. Этот редактор умеет предупреждать об изменениях файла. И он сделает это, когда вы запишете в файл альтернативный поток, однако содержимое при этом останется прежним!

Запись и просмотр ADS из CMD

ADS можно создавать и отображать из командной строки. Следующие команды записывают скрытый текст во второй ADS с именем MyStream2, а затем отображают его.

echo Hidden Text > C:\temp\test.txt:MyStream2 more < C:\temp\test.txt:MyStream2

Просмотр ADS в текстовых редакторах

Тот же Notepad++ покажет вам содержимое ADS, если указать название потока в командной строке

"C:\Program Files (x86)\Notepad++\notepad++.exe" C:\temp\test.txt:MyStream1

Результат:

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

С блокнотом такой фокус пройдет только в том случае, если в конце имени потока есть .txt. Команды ниже добавляют третий ADS и открывают его в блокноте.

echo Hidden Text > C:\temp\test.txt:MyStream3.txt notepad C:\temp\test.txt:MyStream3.txt

Результат:

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

Блокировка скачанных файлов

Давайте вернемся к вопросу, который задал мне читатель. Будет ли файл блокироваться зависит в первую очередь от программы, в которой он был скачан, а во вторую — от параметров ОС. Так, все современные браузеры поддерживают блокировку, и она включена в Windows.

Помните, что когда заблокирован архив, все распакованные файлы будут заблокированы «по наследству». Также не забывайте, что ADS — это функция NTFS, т.е. при сохранении или распаковке архива на FAT32 никакой блокировки не происходит.

Просмотр сведений об источнике заблокированного файла

В PowerShell перейдите в папку со скачанным файлом и посмотрите информацию обо всех потоках.

Get-Item .\PSWindowsUpdate.zip -Stream FileName: C:\Users\Vadim\Downloads\PSWindowsUpdate.zip Stream Length ------ ------ :$DATA 45730 Zone.Identifier 26

Как вы уже знаете, $Data – это содержимое файла, но в списке фигурирует еще и ADS Zone.Identifier. Это прозрачный намек на то, что файл получен из какой-то зоны. Знаете, откуда эта картинка?

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

Чтобы выяснить зону, надо прочесть содержимое ADS.

Get-Content .\PSWindowsUpdate.zip -Stream Zone.Identifier [ZoneTransfer] ZoneId=3

В соответствии с KB182569, зона 3 – это Интернет. Вот так Windows и выясняет, что файл скачан из Интернета!

Как разблокировать файл

Самый очевидный способ — это кнопка или флажок «Разблокировать» в свойствах файла. Если их нет, что бывает с файлами CHM, задача сводится к удалению ADS. Это можно сделать командлетом Remove-Item, как я показывал выше, но есть и специальный командлет Unblock-File.

Очевидно, он нацелен на пакетную разблокировку (например, когда архив уже распакован). Команда ниже разблокирует в папке Downloads все файлы, содержащие в имени PS:

dir C:\Downloads\PS | Unblock-File

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

Как предотвратить блокировку файлов

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

Однако из названия неочевидно, что политика распространяется не только на почтовые вложения, но и скачанные из Интернета файлы. Подробнее о диспетчере вложений читайте в KB883260.

В домашних изданиях редактора групповых политик нет, но реестр никто не отменял: SaveZoneInformation.zip.

Другие примеры практического применения ADS

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

Инфраструктура классификации файлов

Эта серверная технология полагается на ADS, храня в них свойства.

OneDrive

OneDrive использует ADS с именем ms-properties для хранения каких-то своих метаданных. В папке с черновиками и опубликованными статьями блога я выполнил команду, которая находит все файлы с ADS, исключая файлы только с безымянным потоком:

gci -recurse | % { gi $_.FullName -stream } | where stream -ne ':$Data'

В результатах не было недостатка, а содержимое ADS выглядело примерно так:

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

Вредоносные программы

Скрытые от глаз пользователя ADS очень удобны для маскировки вирусов. Поискав alternate data stream в энциклопедии Microsoft по вредоносным программам, вы упретесь в лимит выдачи результатов. И там полно вирусов с нашумевшими именами!

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

Дискуссия и опрос

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

Мы с Артёмом Проничкиным долго не могли выйти на связь друг с другом, потому что оба пытались сделать это через… Skype :) Может, дело в том, что Артём ест догфуд своей компании, а у меня клиент на конкурирующей платформе. Но опыт мне подсказывает, что проблема в скатившемся ниже плинтуса качестве Skype, начиная от невыносимых тормозов на Windows Phone и заканчивая непредсказуемостью доставки уведомлений о пришедших сообщениях на любых платформах.

Я давно бы ушел со Skype, если б не ряд контактов и родители. С друзьями мы успешно общаемся в WhatsApp, но у него нет нормального «десктопного» клиента. Telegram выглядит здорово, но там пусто (что поправимо) и нет голосовых звонков (что не годится). Viber, вроде удовлетворяющий всем требованиям, как-то не закрепился.

А у вас какая ситуация с IM? Напишите в комментариях, каким мессенджером вы:

  1. Пользуетесь чаще всего для двустороннего общения на любых устройствах. Расскажите, почему именно им.
  2. Хотели бы пользоваться в идеале. Другими словами, чем бы вы пользовались, если бы не было стесняющих факторов (например, контактов, которые сидят в «неправильных» мессенджерах, или глюков клиента).

Результаты голосования утеряны в связи с прекращением работы веб-сервиса опросов.


Источник: http://www.outsidethebox.ms/17918/

Похожие новости


Компостеры для дачи своими руками фото
Как печь сделать красивой
Как сделать гирлянду тассел для шара
Карточки для гостей своими руками шаблоны
Резонатор своими руками на авто
Сделать икру своими руками
Самоделки для самообороны своими руками
Багги своими руками в домашних условиях чертежи фото



ШОКИРУЮЩИЕ НОВОСТИ


Back to Top