Создание пользовательского известного типа файла для R-Studio

Поиск при сканировании файлов известных типов (или, как часто говорят, поиск файлов по сигнатурам) является одной из наиболее эффективных технологий восстановления данных, используемых в утилите восстановления данных R-Studio. Использование заданной сигнатуры позволяет восстанавливать файлы определенного типа в том случае, когда частично или полностью отсутствует (повреждена) информация по структуре каталогов и именам файлов.

Обычно для определения месторасположения файлов используется таблица разделов диска. Если сравнить диск с книгой, то таблица разделов будет аналогична ее оглавлению. При сканировании R-Studio ищет файлы известных типов в таблице разделов диска по определенным заданным сигнатурам. Это становится возможным благодаря тому, что практически каждый тип файла имеет уникальную сигнатуру или шаблон данных. Файловые сигнатуры находятся в определенном месте в начале файла и во многих случаях также и в конце файла. При сканировании R-Studio сопоставляет найденные данные с сигнатурами файлов известных типов, что позволяет их идентифицировать и восстановить их данные.

При помощи технологии сканирования файлов известных типов R-Studio позволяет восстановить данные с дисков, которые были переформатированы, а также таблицы разделов которых были перезаписаны. Более того, если раздел диска перезаписан, поврежден или удален, то сканирование файлов известных типов является единственно возможным методом восстановления данных.

Но практически всегда и во всем есть свои недостатки, и файлы известных типов, используемые в R-Studio, не являются исключением. Так, при сканировании файлов известных типов R-Studio позволяет восстановить только нефрагментированные файлы, но, как уже говорилось, в большинстве случаев восстановления данных это самый последний из возможных методов.

В состав R-Studio уже включены сигнатуры наиболее распростаненных типов файлов (просмотреть полный список файлов известных типов можно в разделе Сканирование Диска R-Studio Online Справки.)

В случае необходимости пользователь может добавить новые типы файлов в состав R-Studio. Например, если необходимо найти файлы какого-либо уникального типа, или же разработанного после даты последнего выпуска R-Studio, то можно добавить в состав файлов известных типов собственные сигнатуры. Далее будет рассмотрен данный процесс.

Пользовательские Файлы Известных Типов
Пользовательские сигнатуры файлов известных типов хранятся в XML файле, заданном в диалоговом окне Настройки. Добавление сигнатуры состоит из двух частей:

  1. Определение файловой сигнатуры находящейся в начале файла и при наличии в конце файла.
  2. Создание XML файла, содержащего файловую сигнатуру и другую информацию о типе файлов.

Все это можно выполнить при помощи R-Studio. При этом вам не нужно быть специалистом в области составления (редактирования) XML документов или в области шестнадцатиричного редактирования - в данном руководстве (статье), ориентированном на пользователя самого начального уровня, будут подробно рассмотрены все этапы этого процесса.

Пример: Добавление сигнатуры для файла формата MP4 (XDCam-EX Codec)
Рассмотрим добавление файловой сигнатуры на примере файла .MP4, созданного с использованием Sony XDCAM-EX. Ею можно воспользоваться, например, в случае повреждения SD карты для восстановления видео файлов, которые вы еще не успели сохранить на жестком диске компьютера.

Первый Этап: Определение Файловой Сигнатуры
Для определения файловой сигнатуры рассмотрим примеры файлов такого же формата.

Пусть это четыре видео файла с Sony XDCAM-EX:
ZRV-3364_01.MP4
ZRV-3365_01.MP4
ZRV-3366_01.MP4
ZRV-3367_01.MP4

Для удобства рассмотрения пусть это будут файлы небольшого размера. Файлы большего размера сложнее просматривать в шестнадцатиричной форме.
Known_File_Types_0.png
Кликните по изображению для его увеличения

1. Откроем файлы в шестнадцатиричном редакторе R-Studio. Для этого щелкнем по каждому файлу правой кнопкой мыши и выберем пункт Просмотр/Правка (View/Edit) контекстного меню.

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

3. Определим файловую сигнатуру в начале файла. В нашем примере она находится в самом начале файла. Обратите внимание, что так происходит не всегда - часто файловая сигнатура находится в начале файла, но не в первой строке (смещении).

Из нижеприведенных изображений следует, что содержимое всех четырех файлов различно, но все они начинаются с одной и той же файловой сигнатуры.
Known_File_Types_1.png
Кликните по изображению для его увеличения

Known_File_Types_2.png
Кликните по изображению для его увеличения

Known_File_Types_3.png
Кликните по изображению для его увеличения

Known_File_Types_4.png
Кликните по изображению для его увеличения

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

InВ текстовом виде файловая сигнатура имеет следующий вид:
....ftypmp42....mp42........free

Точками (“.”) обозначены символы, которые не могут быть представлены в текстовом виде. Поэтому необходимо также привести и шестнадцатиричный вид файловой сигнатуры:
00 00 00 18 66 74 79 6D 70 34 32 00 00 00 00 6D 70 34 32 00 00 00 00 00 00 00 08 66 72 65 65

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

На нижеприведенных изображениях выделена файловая сигнатура в конце файла:
Known_File_Types_5.png
Кликните по изображению для его увеличения

Known_File_Types_6.png
Кликните по изображению для его увеличения

Known_File_Types_7.png
Кликните по изображению для его увеличения

Known_File_Types_8.png
Кликните по изображению для его увеличения

Обратите внимание, что данные перед выделенной областью (файловая сигнатура), во всех четырех файлах одни и те же. Это техническая информация, которая не является файловой сигнатурой, но говорит о том, что все четыре снимка (файла) были сделаны при помощи одной камеры с одинаковыми параметрами. Обычно удается отличить совпадающие шаблоны с технической информацией от файловой сигнатуры. В нашем примере в последней строке до начала файловой сигнатуры мы видим текст ‘RecordingMode type=”normal”’, который явно говорит о том, что это какой-то параметр файла, а не сигнатура. Всегда обращайте особое внимание на эту строку, чтобы ошибочно не включить техническую информацию в состав файловой сигнатуры.

В нашем случае файловой сигнатурой является следующий текст:
</NonRealTimeMeta>...
Напомним, что точками обозначены символы, которые не могут быть представлены в текстовом виде.

В шестнадцатиричном виде файловая сигнатура имеет следующий вид:
3N 2F 4E 6F 6E 52 65 61 6N 54 69 6A 65 4A 65 74 61 3E 0D 0A 00
Обратите внимание: в конце файла сигнатура будет не всегда.

Второй Этап: Создание XML файла, описывающего Известный Тип Файлов
Теперь, определив файловую сигнатуру, можно создать XML файл и включить соответствующий тип файлов в состав R-Studio. Это можно сделать двумя способами:

2.1 Используя встроенный графический редактор файловых сигнатур:
Выберите пункт Настройки (Settings) меню Инструменты (Tools), в открывшемся диалоговом окне Настройки (Settings) щелкните по вкладке Известные типы файлов (Known Files Types) и далее нажмите кнопку Редактировать... (Edit User’s File Types).
Known_File_Types_20.png
Кликните по изображению для его увеличения

Нажмите кнопку Создать тип файла (Create File Type) в диалоговом окне Редактирование пользовательских типов (Edit User's File Types).
Задайте следующие параметры:

  • Id – уникальный цифровой идентификатор. Данное число будет выбрано произвольно; единственное, оно не должно совпадать с цифровым идентификатором какого-либо другого типа файлов.
  • Group Description – группа, в которой будут находится найденные файлы в R-Studio. Можно задать либо новую группу, либо выбрать одну из тех которые уже есть. У нас это будет группа “Multimedia Video (Мультимедиа: Видео)”.
  • Description – краткое описание типа файлов. В нашем примере можно использовать, например, "Sony cam video, XDCam-EX".
  • Extension – расширение файлов данного типа. В нашем случае - mp4.

Параметр Свойства (Features) необязательный, в нашем случае нам не нужно его использовать.
Known_File_Types_21.png
Кликните по изображению для его увеличения

Далее необходимо ввести начальную и конечную файловую сигнатуру. Для этого выберите Начало (Begin) и далее в контекстном меню команду Добавить сигнатуру (Add Signature).
Known_File_Types_22.png
Кликните по изображению для его увеличения

Затем дважды щелкните по полю <пустая сигнатура> (<empty signature>) и введите соответствующий текст.
Known_File_Types_23.png
Кликните по изображению для его увеличения

Затем создайте конечную файловую сигнатуру. Не забудьте ввести 21 в поле столбца От (From).
Known_File_Types_24.png
Кликните по изображению для его увеличения

Вы успешно создали собственную сигнатуру файлов известного типа.

Теперь необходимо ее сохранить. Есть два способа: вы можете либо сохранить ее в файл по умолчанию заданный на вкладке Главная (Main) диалогового окна Настройки (Settings) нажав на кнопку Сохранить (Save). Либо нажать на кнопку Сохранить как... (Save As...) и сохранить сигнатуру в какой-либо другой файл.

2.2 Создание XML файла, описывающего Известный Тип Файлов, вручную:
Для создания данного файла воспользуемся XML версией 1.0 и кодировкой UTF-8. Не отчаивайтесь, если вы не знаете, что это такое, - просто откройте любой текстовый редактор (например, Notepad.exe) и в первой строке ввести следующий текст:
<?xml version="1.0" encoding="utf-8"?>
    <FileTypeList>

Далее мы создадим XML тег, определяющий тип файла (FileType). С учетом описанных ранее атрибутов XML тег будет выглядеть следующим образом:
<FileType id="128" group="Multimedia Video" description="Sony cam video, XDCam-EX" extension="mp4">
Вставим его сразу после <FileTypeList>

Далее определим файловую сигнатуру (тег <Signature>). Начальная сигнатура (в начале файла), будет находиться внутри тега <Signature> без каких-либо атрибутов. Используем текстовый вид сигнатуры, но при этом заменив шестнадцатиричными символы, которые не могут быть представлены в текстовом виде. Перед каждым шестнадцатиричным символом вставим "\x" Таким образом тег <Signature> с файловой сигнатурой будет выглядеть следующим образом:
<Signature>\x00\x00\x00\x18ftypmp42\x00\x00\x00\x00mp42\x00\x00\x00\x00\x00\x00\x00\x08free</Signature>

В случае наличия необходимо также определить конечную сигнатуру (в конце файла). Для этого используется тот же тег, но с элементом "from" и атрибутом "end". Это будет выглядеть следующим образом:
<Signature from="end" offset="21">\x3C\x2FNonRealTimeMeta\x3E\x0D\x0A\x00</Signature>

Вспомните, что в конечной файловой сигнатуре не было нетекстовых символов, однако был слеши и треугольные скобки. Чтобы избежать путаницы и ошибок в синтаксисе XML мы заменим в сигнатуре символы "/", "<" и ">" их шестнадцатиричными значениями.

В конце после файловых сигнатур обязательно должны находиться закрывающие теги FileType и FileTypeList:
</FileType>
    </FileTypeList>

Таким образом, весь файл должен выглядеть следующим образом:
<?xml version="1.0" encoding="utf-8"?>   <FileTypeList>
    <FileType id="128" group="Multimedia Video" description="Sony cam video, XDCam-EX" extension="mp4">
      <Signature>\x00\x00\x00\x18ftypmp42\x00\x00\x00\x00mp42\x00\x00\x00\x00\x00\x00\x00\x08free</Signature>
      <Signature from="end" offset="21">\x3C\x2FNonRealTimeMeta\x3E\x0D\x0A\x00</Signature>
    </FileType>
  </FileTypeList>

Помните: синтаксис XML чувствителен к регистру, следовательно, правильным будет являться тег <FileType>, а не <filetype>.

Сохраним файл в текстовом формате с расширением .xml. Например: SonyCam.xml.

Мы успешно создали собственную сигнатуру файлов известного типа. Данный пример вполне достаточен для понимания основных принципов создания пользовательского типа файлов. Более опытные пользователи могут использовать XML версии 2.0. Подробнее об этом можно прочесть в разделе Добавление Типов Файлов-II (Customizing File Types-II) R-Studio online Справки.

Этап 3: Проверка и Добавление Файла, описывающего Известный Тип Файлов
На следующем этапе необходимо добавить (загрузить) ваш XML файл в R-Studio. При этом он будет автоматически проверен.

Загрузим в R-Studio созданный на предыдущем этапе XML файл. Для этого выберем пункт Настройки (Settings) меню Инструменты (Tools). В области Пользовательские типы файлов (User’s file types) вкладки Главная (Main) диалогового окна Настройки (Settings) добавим созданный нами XML файл (SonyCam.xml). Нажмем кнопку Применить (Apply).
Known_File_Types_9.png
Кликните по изображению для его увеличения

2. Ответим Да (Yes) на запрос о загрузке нового типа файлов.
Known_File_Types_10.png
Кликните по изображению для его увеличения

3. Для проверки того, что тип файлов был успешно загружен, щелкнем на вкладку Известные Типы Файлов (Known File Types) диалогового окна Настройки (Settings). Вспомните, что мы добавляли тип файлов в группу Multimedia Video (Мультимедиа: Видео). Раскрыв данную группу (папку), мы должны увидеть элемент с описанием, заданным нами при создании XML файла: Sony cam video, XDCam-EX (.mp4).
Known_File_Types_11.png
Кликните по изображению для его увеличения

Known_File_Types_12.png
Кликните по изображению для его увеличения

Если в синтаксисе файла имеются какие-либо ошибки, то вы увидите соответствующее сообщение:
Known_File_Types_13.png
Кликните по изображению для его увеличения

В этом случае проверьте еще раз ваш XML файл на наличие ошибок. Помните: синтаксис XML чувствителен к регистру и для каждого тега в конце обязательно должен находиться закрывающий тег.

Этап 4: Тестирование файла, описывающего Известный Тип Файлов
ля проверки корректности созданного нами пользовательского типа файлов попробуем найти наши .mp4 файлы на съемном USB флеш-диске.

1. Под ОС Windows Vista или Windows 7 выполним полное (не быстрое) форматирование диска или воспользуемся утилитой очистки дискового пространства (например, R-Wipe & Clean) для полного удаления всех имеющихся на диске данных. Пусть USB диск отформитрован в FAT32 (размер искомых файлов не превышает 2 Гб).

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

3. В ОС диск будет определен как, например, логический диск F:\.

4. Запустим R-Studio. Выберем наш диск (F:\) и нажмем кнопку Сканировать (Scan) Known_File_Types_14.png
Кликните по изображению для его увеличения

5. В диалоговом окне Сканировать (Scan) в области Файловые Системы (File System) щелкнем на кнопку Изменить... (Change...) и снимем все флажки. Таким образом мы отключим поиск файловых систем и файлов, используя таблицу разделов. Known_File_Types_15.png
Кликните по изображению для его увеличения

6. Установим флажок Дополнительно Искать Известные Типы Файлов (Extra Search for Known File Types). Это позволит R-Studio искать при сканировании файлы известных типов.

7. Чтобы начать сканирование нажмем кнопку Сканировать (Scan).

8. Подождем, пока R-Studio отсканирует диск. На вкладке Информация о Сканировании (Scan Information) будет отображаться ход сканирования (прогресс).
Known_File_Types_16.png
Кликните по изображению для его увеличения

9. После окончания сканирования выберем элемент Дополнительно Найденные Файлы (Extra Found Files) и дважды щелкнем по нему мышью.
Known_File_Types_17.png
Кликните по изображению для его увеличения

10. Наши тестовые файлы будут находиться в папке Sony cam video, XDCam-EX folder (или в папке под другим названием, соответствующим описанию типа файлов, заданному на Втором Этапе).
Known_File_Types_18.png
Кликните по изображению для его увеличения

Вы видите, что имена файлов, даты и месторасположение (папки) не были восстановлены, так как данная информация хранится в файловой системе. Поэтому в R-Studio автоматически каждый файл будет отображен с новым именем.

Однако видно, что содержимое файлов не повреждено. Чтобы в этом убедиться, откроем их в соответствующей программе, например VLC media player.
Known_File_Types_19.png
Кликните по изображению для его увеличения

Заключение
Возможность R-Studio при сканировании искать файлы известных типов позволяет восстанавливать данные даже с диска, чьи файлововые системы или таблицы разделов были существенно повреждены или перезаписаны. Вы можете достаточно эффективно искать файлы используя их сигнатуры, что особенно полезно в том случае, если вам точно известен тип восстанавливаемых файлов, как, например, в нашем примере. Возможность создать пользовательские типы файлов позволяет добавить в список файлов известных типов любой файл, имеющий определенную файловую сигнатуру.

© Copyright 2000-2016 R-Tools Technology Inc.