Алгоритм відновлення даних по файловим «сигнатурам»

Пошук по сигнатурам – один з найважливіших алгоритмів, що робить сучасні програми з відновлення інформації тим, чим вони є: універсальними інструментами, здатними витягнути файли з відформатованих, пошкоджених і недоступних дисків.

Відновлення даних по файловим «сигнатурам»

У тих, хто прочитав раніше опубліковану статтю «Як Windows видаляє файли і чому їх можна відновити», справедливо виникає питання, як саме функціонують дані програми при пошкодженні або відсутності файлової системи. Насправді, класичні інструменти з відновлення даних працюють з інформацією про файли, отриманою з файлової системи. Відповідно, якщо запису про файл в файловій системі не виявлено, класичні інструменти (такі, як команда «undelete», з ранніх версій операційних систем) не зможуть навіть виявити видалену інформацію.

Cигнатурний пошук

Пошук по сигнатурам дозволяє відновити файли після форматування диска або видалення логічних розділів. Для технології існує безліч комерційних назв: «Power Search», «Content-Aware Analysis», «Smart Scan» – всі ці технології від різних виробників працюють по одному і тому ж принципу.

Як працює пошук по сигнатурам

Визначення файлів

Основний принцип роботи алгоритмів сигнатурного пошуку такий же, як і в найперших антивірусів. Як антивірус сканує файл у пошуках ділянок даних, що збігаються з відомими фрагментами коду вірусів, так і алгоритми сигнатурного пошуку, які використовуються в програмах для відновлення даних, зчитують інформацію з поверхні диска з надією зустріти знайомі ділянки даних. Заголовки багатьох типів файлів містять характерні послідовності символів. Наприклад, файли у форматі *.jpeg містять послідовність символів «JFIF», *.bmp зображення починаються з «BM», архіви *.zip починаються з символів «PK», *.dbf бази даних містять сигнатуру «OPLDatab», а документи PDF починаються з символів «% PDF-».

Деякі файли (наприклад, текстові та HTML файли) не мають характерних сигнатур, але можуть бути визначені за непрямими ознаками, тому містять тільки символи з таблиці ASCII.

Визначення розміру файлу

Для відновлення файлу замало тільки знайти його початок, потрібно також визначити його кінець. Кінець файлу можна знайти, знаючи розмір і адресу початку файлу. Розмір файлу визначається або аналізом заголовка (* .zip, * .jpeg, * .avi, * .psd, * .pst, * .rar, * .tiff тощо), або зчитуванням і аналізом секторів диска, що йдуть відразу за заголовком. Приміром, кінцем текстового або HTML файлу алгоритм буде вважати перший же сектор, який буде містити символи, що не входять в таблицю ASCII.

Обмеження

Сигнатурний пошук – не панацея. Перезапис вмісту файлу та фрагментованість дисків (особливо – файлів великого розміру) справляють негативний вплив на можливість відновлення інформації.

Гібридні алгоритми

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

Author: Michael Miroshnichenko

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)