Приховані дані в розділах ntfs, енциклопедія windows

1. Відкрийте інтерпретатор командного рядка (CMD.EXE).

3. Потім повторно відредагувати файл, вказавши інший потік за допомогою команди notepad NORMAL.TXT: HIDDEN. Буде виданий запит на створення нового файлу. Введіть необхідний текст і збережіть файл.

4. Введіть команду dir, яка покаже початковий файл NORMAL.TXT з таким же, як і раніше, розміром.

Компанія Microsoft не надала зручного методу виявлення або видалення таких потоків. Проте, для їх видалення існує два способи:

· Скопіюйте файл в розділ з файловою системою FAT і потім назад в NTFS;

· Скористайтеся такою послідовністю команд:

ren <файл> temp.exe
cat temp.exe> <файл>
del temp.exe

Крім того, існує можливість створення функції, яка буде перераховувати всі альтернативні потоки кожного файлу відповідно до шаблону c: \ windows \ *. Визначимо нову функцію і назвемо її las. Функція буде приймати тільки один аргумент: шаблон шляху. Потім для отримання необхідної інформації слід ввести таку команду:

Визначення функції las представлено далі.

Визначення функції las

(sequence
(define
(Las Dir)
(filter
'(Lambda
(O)
(Cdr o))
(mapcar
'(Lambda
(FileInfo)
(if
(getfilesize
(Car FileInfo))
(cons
(Car FileInfo)
(getaltstreams
(Car FileInfo)))
(Cons nil nil)))
(Dirlist Dir))))
'(Enhanced with las))

Незважаючи на те, що текст функції можна ввести в командному рядку, простіше зберегти його у файлі. Назвемо файл LAS.LZP. Тепер в запрошенні командного рядка програми Lizp можна ввести таку команду:

(Eval (load 'las.lzp))

В результаті буде отримана нова функція las. Потім можна ввести команду, яка вже розглядалася раніше:

Для того, щоб програма Lizp завжди використовувала цю функцію, введіть наступну команду:

(Compile (load 'las.lzp)' Lizp_with_las.exe true)

Це призведе до створення нової версії програми Lizp, яка називається Lizp_with_las.exe.

Нарешті, припустимо, що необхідно створити програма з графічним інтерфейсом, яке буде запитувати у користувача шаблон шляху і відображати альтернативні потоки в діалоговому вікні. Збережіть наведені далі рядки в файлі LAS_GUI.LZP.

Код файлу LAS_GUI.LZP

(local
(Result)
(Setq Result
(las
(inputbox
'((Wild path to check for Alt Streams)))))
(messagebox
(If Result Result
'((No Alt Streams found in path.))))
(Exit))

Тепер в запрошенні командного рядка програми Lizp введіть наступну команду:

(Compile (load 'las_gui.lzp)' Las.exe nil

Буде створено нове програма, зване LAS.EXE, яке буде виконує необхідну функцію. Зверніть увагу на останній аргумент функції Compile: при першій компіляції використовувалося значення true, а при другій - значення nil. Причина полягає в тому, що при першому запуску програми потрібно створення консолі (оскільки застосовувався власний командний інтерпретатор Lizp). Вдруге використання консолі не потрібно.

Єдиним надійним способом обробки альтернативних потоків є використання функції BackupRead (). З цією функцією пов'язана тільки одна проблема - необхідність в наявності дозволів SeResotorePriviledge / SeBackupPriviledge, які не надаються більшості користувачів.

Функція BackupRead () "перетворює" файл і всі пов'язані з ним метадані (розширені атрибути, дані безпеки, альтернативні потоки і зв'язку) в потік байтів. Для зворотного перетворення можна скористатися функцією BackupWrite ().

Схожі статті