Способи використання симлінк в windows

Як створюються символьні посилання? Можна для цього написати програму. а можна скористатися існуючими утилітами. У Windows 7 для цього є консольна програма mklink.

Крім того, існує утиліта Junction з набору програм Sysinternals.

Якщо в локальній мережі або в мережі підприємства у кого-то є доступ до вашого комп'ютера, то він може змусити вас:

  • зберігати дані не туди, куди ви очікуєте;
  • змусити вас запустити щось не звідти, звідки ви очікуєте.

Адже ніхто не перевіряє перед збереженням, чи не є цільова папка символічним посиланням? Та й не відразу збагнеш, як це зробити.

Cімлінкі всередині влаштовані складно. Всередині у них ховається більш потужний механізм - reparse points.

З файлу можна робити не тільки симлінк, а й взагалі приєднувати довільні дані, причому такий файл в системі буде виглядати мертвим. На всі операції з файлом система буде видавати «Помилка 0x80070780. Доступ до цього файлу з системи відсутній ». Ні видалити файл, ні перейменувати його стандартними засобами не вийде.

Все ж в системі є інструмент для роботи з reparse-даними, доступний в командному рядку, це утиліта fsutil:

Сенс в тому, що здогадатися про те, що файл є reparse-файлом важко. У повідомленні про помилку не говориться ні слова про точки повторної обробки.

C допомогою створеного reparse-файлу заховати відразу багато даних, щоб не знайшли. Робиться це так:

  • Створюється порожній файл file;
  • До нього чіпляється NTFS-потік file: stream. Причепити потік до файлу можна, наприклад, за допомогою програми NTFS Stream Explorer;
  • У потік записується довільну кількість даних, можна навіть з'їсти дитину все вільне місце користувача;
  • У файл записуються reparse-дані, після чого він стає або недоступний, або виглядає як простий симлінк.

Фішка в тому, що причеплений потік нікуди не дівається, але поки у файлу є reparse-дані, потік ніяк назад не витягти і навіть не можна сказати, є він у файлу чи ні.

Як же його назад витягти? Потрібно видалити reparse-дані, file стане назад звичайним файлом, file: stream знову можна буде відкрити і прочитати. Тобто можна таким чином добре заховати архів з чимось секретним або вбити вільний простір на чужому диску, користувач нізащо не знайде, куди воно пішло.

По темі точок повторної обробки також є наступне:

Схожі статті