Альтернативні потоки ntfs, або як widows визначає, що файл був завантажений з інтернет.
Відео: Уроки C #. Нить. Частина 1
Більшість користувачів сучасних операційних систем сімейства Windows стикалися з ситуацією, коли файл довідки в форматі CHM (Compiled Help Module) відкривається лише частково - можна переглядати тільки зміст без вмісту його пунктів:
При виборі посилання не відкривається відповідний розділ в правій частині вікна. Зазвичай, це відбувається з файлами, які були завантажені з Інтернет (не в складі архіву, наприклад).
Крім цього, при спробі відкрити файл CHM, що міститься в загальній мережевий папці, використовуючи шлях в форматі UNC (Universal Naming Convention), наприклад server h help.chm його розділи не відображаються. Іншими словами, нормально переглядати файли .chm можна тільки в тих випадках, якщо вони не були отримані по мережі.
Схожа картина спостерігається, коли ви намагаєтеся відкрити виконуваний файл, який був завантажений з мережі. Ви побачите попередження системи безпеки:
Причому, цей же файл, витягнутий з архіву який також був завантажений з мережі Internet, на даному комп`ютері може відкриватися без будь-яких проблем. Фактично, вся різниця полягає лише в тому, що файл, що відкривається був створений локально, в процесі розпакування, а не завантажений по мережі. Іншими словами, Windows має можливість визначити мережеве походження файлу, і відреагувати на нього з використанням певних настройок системи безпеки.
Механізм визначення мережевого походження файлів
При виконанні функцій запису даних в файл, вони поміщаються в основний потік даних. Коли ми відкриваємо, наприклад, блокнотом текстовий файл, то отримуємо доступ саме до даних основного потоку. Дані ж альтернативних потоків, при використанні стандартного доступу, не відображаються, як втім, немає навіть ніяких ознак їх наявності. Проте, дані альтернативних потоків, пов`язані з конкретним файлом або каталогом, можуть бути доступні за допомогою спеціальних програм або при використанні особливого синтаксису в командному рядку Windows.
Наприклад, запис в файл test.txt тексту командою echo:
echo Main stream Data gt; test.txt - записати текст "Main stream Data" в файл test.txt,що означає запис в основний неіменованого потік.
Але можна змінити команду:
echo Alternate stream Data gt; test.txt: stream1 - записати текст "Alternate stream Data" в альтернативний потік з ім`ям stream1 файлу test.txt
Тепер можна відкрити, наприклад, блокнотом кожен з потоків:
notepad test.txt - відкриється вміст основного потоку з текстом "Main stream Data"
notepad test.txt: stream1 - відкриється вміст альтернативного потоку з текстом "Alternate stream Data"
Альтернативні потоки, будучи невидимими для стандартних засобів роботи з об`єктами файлової системи, проте, дуже часто використовуються для зберігання додаткових відомостей про файли та іншої службової інформації. Так, наприклад, при скачуванні файлів з Інтернет, браузери додають до них альтернативний потік з ім`ям Zone.Identifier, який можна відкрити блокнотом, як і в прикладі вище
notepad% USERPROFILE% Downloads ChromeSetup.exe: Zone.Identifier - відкрити в блокноті альтернативний потік з ім`ям Zone.Identifier для інсталяційного файлу браузера Google Chrome з ім`ям ChromeSetup.exe Шлях до файлу можна не ставити, попередньо виконавши команду переходу в каталог завантаження поточного користувача (при стандартному розташуванні службових користувальницьких папок):
cd% USERPROFILE% Downloads - перейти в каталог завантаження.
notepad ChromeSetup.exe: Zone.Identifier - відкрити альтернативний потік з ім`ям Zone.Identifier для інсталяційного файлу браузера Google Chrome з ім`ям ChromeSetup.exe в поточному каталозі.
Як бачимо, вміст альтернативного потоку містить рядки:
[ZoneTransfer] - ознака секції з описом зони передачі даних
ZoneId = 3 - ідентифікатор зони.
Ця інформація дає можливість визначити походження файлу за номером ідентифікатора ZoneId:
0 - локальний комп`ютер (Local).
1 - місцева локальна мережа (Intranet)
2 - надійні сайти Інтернет (Trusted Sites)
3 - Інтернет (Internet)
4 - небезпечні сайти (Restricted Sites)
Таке визначення зон, наприклад, відповідає настроюванням безпеки оглядача Internet Explorer:
В даному випадку, можна визначити, що файл ChromeSetup.exe був отриманий з Інтернет (ідентифікатор зони = 3). При запуску такого файлу, буде видано попередження системи безпеки про ненадійного джерелі. Аналогічним чином працюють засоби безпеки додатків Microsoft Office, коли попереджають про небезпеку відкриття файлів, які були завантажені з Інтернет. З цієї ж причини не відкривається вміст файлів довідок у форматі CHM - вміст альтернативного потоку дозволяє класифікувати їх як небезпечні, незалежно від реально існуючої або неіснуючої небезпеки.
Спробуйте змінити тим же блокнотом, значення ZoneId на 0, що буде відповідати локальному походженням файлу, і попередження системи безпеки зникне, як і проблеми з відкриттям офісних документів або розділів довідок в .chm-файлах.
Аналогічна поведінка систем безпеки буде і в тих випадках, якщо видалити вміст альтернативного потоку (зробити його порожнім), або взагалі видалити сам альтернативний потік.
Починаючи з Windows 7 для отримання переліку альтернативних потоків файлів можна використовувати команду DIR з параметром / R:
dir / r% UserpRofile% Downloads - відобразити список файлів і альтернативних потоків в каталозі Downloads поточного користувача.
Для роботи з альтернативними потоками в будь-якої версії ОС Windows можна використовувати утиліту streams.exe ізсостава програмного пакету Microsoft Sysinternals Suite. Пакет містить безліч невеликих програм для діагностики, оптимізації та адміністрування, в тому числі, і утиліту, що дозволяє заповнити недоліки в роботі з альтернативними потоками.
Формат командного рядка:
streams.exe [-s] [-d] file or directory
Параметри командного рядка:
-s - обробляти підкаталоги.
-d - видаляти альтернативні потоки.
-nobanner - не відображати стартовий банер і відомості про авторські права.
Приклади використання:
streams.exe /? - відобразити довідку по використанню програми.
streams myfile.txt - відобразити відомості про рух файлу myfile.txt
streams -d myfile.txt - видалити альтернативні потоки файлу myfile.txt
streams -d -s D: Downloads *. * - видалити альтернативні потоки всіх файлів і підкаталогів в каталозі D: Downloads
В операційних системах Windows 8 і пізніших, командна оболонка PowerShell також дозволяє працювати з альтернативними потоками:
Get-Item -Path -Path C: FirefoxSetup.exe -Stream * - відобразити відомості про рух файлу C: FirefoxSetup.exe.
Get-Content -Path C: FirefoxSetup.exe -Stream Zone.Identifier - відобразити вміст альтернативного потоку Zone.Identifier файлу C: FirefoxSetup.exe
Remove-Item -Path C: FirefoxSetup.exe -Stream * - видалити всі альтернативні потоки, пов`язані з файлом C: FirefoxSetup.exe
Remove-Item -Path C: FirefoxSetup.exe -Stream Zone.Identifier - видалити альтернативний потік Stream Zone.Identifier, пов`язаний з файлом C: FirefoxSetup.exe.
Інформація про зонах безпеки широко використовується в групових політиках, і зокрема, Диспетчером вкладень Windows, який виконує функції захисту від шкідливого ПО, яке може міститися в поштових вкладеннях або файлах, завантажених з Інтернет. На сайті Microsoft розміщена докладна стаття про способи налаштування диспетчера вкладень і рішення проблем, пов`язанихз ним:
Опис роботи диспетчера вкладень, який входить у систему Microsoft Windows.
На закінчення додам, що альтернативні потоки - це властивість файлової системи NTFS, і, наприклад, в FAT32 не підтримуються. Відповідно, при копіюванні файлів з NTFS в будь-яку іншу файлову систему, альтернативні потоки відкидаються.
Поділися в соціальних мережах:
Схожі
- Команда rmdir (rd) - видалити каталог файлової системи windows.
- Витяг файлів з архівів формату .cab в операційних системах windows.
- Створення стислих файлів формату .cab в операційних системах windows.
- Використання редактора реєстру regedit в командних файлах windows
- Rename (ren) - перейменувати файл або каталог у командному рядку windows.
- Завантаження файлів на сервер в php
- Синій екран смерті 0x00000024
- Як з excel-файлу зробити dbf-файл
- Як створити файл .htaccess
- Html-файл відкривається як txt
- Команда dir
- Команда where - пошук файлів за шаблоном імені.
- Команда chkdsk
- Команда convert
- Команда movefile - перемістити або видалити зайнятий файл
- Команда mklink - створення символічного посилання на файл або каталог.
- Type - висновок на екран вмісту текстового файлу.
- Команда expand - розпакувати стиснений файл у форматі .cab
- Команда tftp - обмін файлами по протоколу tftp
- Налаштування многозагрузочной системи
- Команда openfiles - управління відкритими по мережі або локально файлами.