Добавление Типов Файлов-I

Top  Previous  Next

Синтаксис файла описания пользовательских сигнатур схож с языком XML. Хранятся пользовательские сигнатуры в файле, заданном на вкладке Главная диалогового окна Настройки .

Дополнительные возможности при создании собственных сигнатур Файлов Известных Типов описаны в разделе Добавление Типов Файлов-II.

Пример файла сигнатуры

<?xml version="1.0" encoding="utf-8"?>

<FileTypeList>

   <!-- Search for NTFS MFT -->

   <FileType id="5626" group="System Files" description="MFT" features="TXT_ANSI TXT_UNICODE">

      <Signature offset="0" from="begin" count="1">FILE</Signature>

      <Signature offset="4" from="end" count="1">$\x00M\x00F\x00T</Signature>

   </FileType>

</FileTypeList>

Структура файла

Заголовок Файла

Файл начинается со стандартного заголовка  XML

<?xml version="1.0" encoding="utf-8"?>

Элемент FileTypeList

<FileTypeList>

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

Элемент FileType

Ниже приведено описание атрибутов данного элемента.

Атрибуты:

id

<u32>

Обязательный

Уникальный цифровой идентификатор для каждого типа файла.


group

<string>

Необязательный

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

По умолчанию: unknown

description

<string>

Необязательный

Краткое описание

По умолчанию: null (без описания)

features

NO_SCAN

TXT_ANSI

TXT_UNICODE

Необязательный

Дополнительные свойства типа файлов. Если необходимо задать несколько свойств, то между ними следует оставлять пробел.

По умолчанию: 0

extension

<string>

Необязательный

Расширение файла.

По умолчанию: null (без расширения)

Флаги свойств типа файлов

NO_SCAN

Не для сканирования. При использовании данного флага R-Studio не будет искать данный тип файлов. Файлы данного типа будут показаны при сортировке файлов по расширениям.

TXT_ANSI

Файл можно просмотреть как текст в кодировке ANSI. При использовании данного флага файл может быть корректно представлен как текст в кодировке ANSI. При просмотре файлы данного типа будут сразу открываться в Текстовом/Шестнадцатиричном Редакторе.

TXT_UNICODE

Файл можно просмотреть как текст в кодировке UNICODE. При использовании данного флага файл может быть корректно представлен как текст в кодировке UNICODE. При просмотре файлы данного типа будут сразу открываться в Текстовом/Шестнадцатиричном Редакторе.

Данный элемент может содержать неограниченное число элементов Signature. Если есть несколько элементов Signature, то это означает, что все эти сигнатуры одновременно присутствуют в файле. Данные сигнатуры должны иметь различные атрибуты offset и они не должны пересекаться.

Элемент Signature

Элемент содержит строковую величину сигнатуры файла, состоящую из символов ASCII, и шестнадцатиричные байты в формате \xhh , где hh - шестнадцатиричный байтовый код. Если после \x отсутствует шестнадцатиричное число, то \x обрабатывается как часть строковых символов.

Атрибуты:

offset

<u16>

Необязательный

Десятичное смещение сигнатуры

По умолчанию: 0

count

<u16>

Необязательный

Десятичное число, определяющее число сигнатур одинаковой длины. Используется в том случае, если в файле могут присутствовать несколько сигнатур одной и той же длины, начинающиеся с одного смещения. В этом случае они должны быть последовательно записаны в элемент,  а атрибур size задает длину сигнатуры. Значение count*size должно быть равно числу байт в элементе.

Если с одного смещения может начинаться только одна сигнатура, то значение атрибута count должно быть равно "1" и size должен быть равен длине (число байт) сигнатуры.

По умолчанию: 1

size

<u16>

Необязательный

Десятичное число, определяющее число байт в сигнатуре.

По умолчанию: число байт в элементе.

from

begin

end

Необязательный

Определяет, откуда рассчитывается offset.

Если значение атрибута равно end, то offset рассчитывается с конца файла  до первого байта сигнатуры. Это означает, что если длина сигнатуры равна двум байтам, то величина offset должна быть равна 2.

По умолчанию: begin

Комментарии

<!-- Comment string -->

Стандартная строка комментария XML .