Добавление Типов Файлов-II |
В настоящее время R-Studio поддерживает две Версии описания типа файлов. Версия 2 отличается от Версии 1 добавлением возможности смещения сигнатуры и возможности комбинации нескольких сигнатур (при помощи элементов AND/OR) в одном типе файлов. Версия описания типа файлов определяется атрибутом Version элемента FileTypeList . По умолчанию используется Версия1. Структура файла Общие элементы для Версии 1 и Версии 2 описания типа файлов Заголовок Файла Файл начинается со стандартного заголовка XML <?xml version="1.0" encoding="utf-8"?> Элемент FileTypeList <FileTypeList> Атрибуты:
В конце обязательно должен находиться закрывающий тег </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 Ниже приведено описание атрибутов данного элемента. Атрибуты:
Флаги свойств типа файлов (features)
Список групп предопределенных типов файлов
Элемент FileType может содержать неограниченное число элементов Signature. Если элемент FileType содержит несколько элементов Signature, то это означает, что все они одновременно присутствуют в файле. Эти сигнатуры должны иметь различные смещения и не должны пересекаться. Элемент Signature Элемент содержит строковую величину сигнатуры файла, состоящую из символов ASCII, и шестнадцатиричные байты в формате \xhh , где hh - шестнадцатиричный байтовый код. Если после \x отсутствует шестнадцатиричное число, то \x обрабатывается как часть строковых символов. Атрибуты:
Версия 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 Определяют позиции сигнатур типа файлов в файле. Атрибуты:
Элементы 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 обрабатывается как часть строковых символов.
Пример <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> |