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

Top  Previous  Next

В настоящее время R-Studio поддерживает две Версии описания типа файлов. Версия 2 отличается от Версии 1 добавлением возможности смещения сигнатуры и возможности комбинации нескольких сигнатур (при помощи элементов AND/OR) в одном типе файлов. Версия описания типа файлов определяется атрибутом Version элемента FileTypeList . По умолчанию используется Версия1.

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

Общие элементы для Версии 1 и Версии 2 описания типа файлов

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

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

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

Элемент FileTypeList

<FileTypeList>

Атрибуты:

Version

1.0

2.0

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

Версия описания типа файлов

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

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

Комментарии

<!-- Comment string -->

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

Версия 1 описания типа файлов

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

<FileTypeList>

   <FileType id="2" group="archive" description="ARJ Archive" extension="arj">

      <Signature offset="3" count="1">Abc\x5c\x00\x04</Signature>

      <Signature offset="9" count="2">\x23\x01\xf4</Signature>

   </FileType>

</FileTypeList>

Элемент FileType

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

Атрибуты:

id

<u32>

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

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


group

<string>

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

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

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

description

<string>

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

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

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

features

NO_SCAN

TXT_ANSI

TXT_UNICODE

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

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

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

extension

<string>

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

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

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

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

NO_SCAN

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

TXT_ANSI

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

TXT_UNICODE

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

Список групп предопределенных типов файлов

Группа

Название группы в диалоговом окне Типы Файлов.

archive

Архив

graphics

Графика/Рисунок

internet

Интернет файлы

multimedia

Мультимедиа

audio

Мультимедиа: Аудио

video

Мультимедиа: Видео

font

Шрифт

document

Документ

doc_database

Документ: База данных

doc_sheet

Документ: Таблица

exe

Исполняемые/Библиотека/DLL

unknown

Другие файлы

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

Элемент 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

Версия 2 описания типа файлов

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

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

<FileTypeList version="2.0">

   <FileType id="5626" group="_Test" description="Test file" extension="tst">

      <Begin combine="and">

         <Signature from="0" to="20">ABC</Signature>

         <Signature offset="1">CDEFG</Signature>

         <AND>

            <Signature offset="0">DE</Signature>

            <Signature offset="0">RTD</Signature>

            <OR>

               <Signature offset="12">CP</Signature>

               <Signature offset="16">RTD</Signature>

            </OR>

         </AND>

      </Begin>

      <End combine="or">

         <Signature from="3" to="20">ABC</Signature>

         <Signature offset="5">CDEFG</Signature>

         <AND>

            <Signature offset="2">DE</Signature>

            <Signature offset="3">RTD</Signature>

            <OR>

               <Signature offset="12">CP</Signature>

               <Signature offset="16">RTD</Signature>

            </OR>

         </AND>

      </End>

   </FileType>

</FileTypeList>

Элемент FileType

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

Атрибуты:

Схожи с атрибутами в Версии 1.

Элемент FileType может содержать один элемент Begin и один элемент End. Он должен содержать по крайней мере один из этих элементов.

Пример

<FileTypeList version=”2.0”>

   <FileType id="2" group="archive" description="ARJ Archive" extension="arj">

      <Begin [attributes]>

       ...

      </Begin>

      <End [attributes]>

       ...

      </End>

   </FileType>

</FileTypeList>

Элементы Begin и End

Определяют позиции сигнатур типа файлов в файле.

Атрибуты:

combine

and

or

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

Показывает порядок логической операции (объединение или пересечение)

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

Элементы Begin и End могут содержать один или несколько элементов Signature, а также один или несколько элементов OR или AND. В случае присутствия нескольких из указанных элементов они комбинируются в соответствие с атрибутом combine.

Пример

<FileTypeList version=”2.0”>

   <FileType id="2" group="archive" description="ARJ Archive" extension="arj">

      <Begin combine="or">

         <Signature [attributes]> ... </Signature>

         ...

         <Signature [attributes]> ... </Signature>

         <AND>

          ...

         </AND>

         <OR>

          ...

         </OR>

      </Begin>

      <End>

         <OR>

          ...

         </OR>

         <Signature [attributes]> ... </Signature>

         ...

         <Signature [attributes]> ... </Signature>

      </End>

   </FileType>

</FileTypeList>

Элементы AND и OR

Данные элементы могут содержать один или несколько элементов Signature, а также один или несколько элементов OR или AND. В случае присутствия нескольких из указанных элементов они комбинируются в соответствие с типом элемента (логическое AND или OR).

Пример

<FileTypeList version=”2.0”>

   <FileType id="2" group="archive" description="ARJ Archive" extension="arj">

      <Begin>

         <Signature [attributes]> ... </Signature>

         ...

         <Signature [attributes]> ... </Signature>

         <AND>

            <Signature [attributes]> ... </Signature>

            <OR>

               <Signature [attributes]> ... </Signature>

               <AND>

                  <Signature [attributes]> ... </Signature>

                  <Signature [attributes]> ... </Signature>

               </AND>

               <OR>

                  <Signature [attributes]> ... </Signature>

                  <Signature [attributes]> ... </Signature>

               </OR>

            </OR>

            <Signature [attributes]> ... </Signature>

         </AND>

      </Begin>

   </FileType>

</FileTypeList>

Элемент Signature

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

offset

<u16>

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

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

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

from

<u16>

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

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

Игнорируется, если задан атрибут offset.

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

to

<u16>

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

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

Игнорируется, если задан атрибут offset.

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

size

<u16>

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

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

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

Пример

<FileTypeList version=”2.0”>

   <FileType id="2" group="archive" description="ARJ Archive" extension="arj">

      <Begin>

         <Signature offset="3">Abc\x5c\x00\x04</Signature>

         <Signature from="9" to="15">\x23\x01\xf4</Signature>

      </Begin>

   </FileType>

</FileTypeList>