© 2021 R-Tools Technology Inc.
All rights reserved.
В настоящее время R-Studio поддерживает две Версии описания типа файлов. Версия 2 отличается от Версии 1 добавлением возможности смещения сигнатуры и возможности комбинации нескольких сигнатур (при помощи элементов AND/OR) в одном типе файлов. Версия описания типа файлов определяется атрибутом Version элемента FileTypeList . По умолчанию используется Версия1.
Заголовок Файла
Файл начинается со стандартного заголовка XML
<?xml version="1.0" encoding="utf-8"?>
Элемент FileTypeList
<FileTypeList>
Атрибуты :
Version |
1.0 2.0 |
Необязательный |
Версия описания типа файлов |
По умолчанию: 1.0 |
В конце обязательно должен находиться закрывающий тег </FileTypeList>.
Комментарии
<!-- Comment string -->
Стандартная строка комментария XML .
<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 (без расширения) |
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 |
<?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>