Что такое сигнатура файла

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

Из Википедии — свободной энциклопедии

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

Многие форматы файлов не предназначены для чтения как текст. Если такой файл будет просмотрен как текстовый файл, его содержимое будет невразумительно. Однако сигнатура файла может быть интерпретирована и показана как текст. В столбце ИСО 8859-1 указано, как расшифровывается сигнатура файла стандартной для UNIX-подобных операционных систем утилитой file при языковой кодировке ИСО 8859-1.

Расширение файлаОписаниеСмещениеISO 8859-1Шестнадцатеричная сигнатура
rpmRedHat Package Manager (RPM) package [1]0
binAmazon Kindle Update Package [2]0
PIC

IBM Storyboard bitmap file

Windows Program Information File
Mac Stuffit Self-Extracting Archive
IRIS OCR data file

0
PDBPalmPilot Database/Document File11
DBAPalm Desktop Calendar Archive0
DBAPalm Desktop To Do Archive0
TDAPalm Desktop Calendar Archive0
Palm Desktop Data File (Access format)0
icoComputer icon encoded in ICO file format [3]0
3gp

3rd Generation Partnership Project 3GPP and 3GPP2 multimedia files4
z

compressed file (often tar zip)

Compressed file (often tar zip)

0
bacFile or tape containing a backup done with AmiBack on an Amiga.

It typically is paired with an index file (idx) with the table of contents.

0
bz2Compressed file using Bzip2 algorithm0
gifImage file encoded in the Graphics Interchange Format (GIF) [4]0
tif

Tagged Image File Format0(little endian format)
(big endian format)
cr2Canon RAW Format Version 2 [5]

Canon’s RAW format is based on the TIFF file format [6]

0
cinKodak Cineon image0
Compressed file using Rob Northen Compression (version 1 and 2) algorithm0
dpxSMPTE DPX image0(big endian format)
(little endian format)
exrOpenEXR image0
bpgBetter Portable Graphics format [7]0
jpg

JPEG raw or in the JFIF or Exif file format0
ilbm

IFF 8-Bit Sampled Voice0

Amiga Contiguous Bitmap0

IFF Simple Musical Score0

iffAmiga Fantavision Movie0

Audio Interchange File Format0

idxIndex file to a file or tape containing a backup done with AmiBack on an Amiga.0
lzlzip compressed file0
exeDOS MZ executable file format and its descendants (including NE and PE)0
zip

zip file format and formats based on it, such as JAR, ODF, OOXML0(empty archive) (spanned archive)
rarRAR archive version 1.50 onwards [8]0
rarRAR archive version 5.0 onwards [9]0
elfExecutable and Linkable Format0
pngImage encoded in the Portable Network Graphics format [10]0
classJava class file, Mach-O Fat Binary0
UTF-8 encoded Unicode byte order mark, commonly seen in text files.0
Mach-O binary (32-bit)0

Mach-O binary (64-bit)0

Mach-O binary (reverse byte ordering scheme, 32-bit) [11]0
Mach-O binary (reverse byte ordering scheme, 64-bit)0
Byte-order mark for text file encoded in little-endian 16-bit Unicode Transfer Format0
Byte-order mark for text file encoded in little-endian 32-bit Unicode Transfer Format0
psPostScript document0
pdfPDF document0
asf

Advanced Systems Format [12]0
System Deployment Image, a disk image format used by Microsoft0
ogg

Ogg, an open source media container format0
psdPhotoshop Document file, Adobe Photoshop’s native file format0
wavWaveform Audio File Format0
aviAudio Video Interleave video format0
mp3MPEG-1 Layer 3 file without an ID3 tag or with an ID3v1 tag (which’s appended at the end of the file)0
mp3MP3 file with an ID3v2 container0
bmp

BMP file, a bitmap format used mostly in the Windows world0
isoISO9660 CD/DVD image file [13]0x8001

fitsFlexible Image Transport System (FITS) [14]0
flacFree Lossless Audio Codec [15]0
mid

MIDI sound file [16]0
doc

See also USMT 3.0 (Win XP) [27] and USMT 4.0 (Win 7) [28] User Guides

0
nesNintendo Entertainment System ROM file [29]0
tartar archive [30]0x101
toxOpen source portable voxel file [31]0
MLVMagic Lantern Video file [32]0
Windows Update Binary Delta Compression [33]0
7z7-Zip File Format0
gz

[rfc:1952 GZIP]0
lz4LZ4 Frame Format [34]

Remark: LZ4 block format does not offer any magic bytes. [35]

0
cabMicrosoft Cabinet file0
Various. (Replacing the last character of the original file extension with an underscore, e.g. setup.exe becomes setup.ex_)Microsoft compressed file in Quantum format, used prior to Windows XP. File can be decompressed using Extract.exe or Expand.exe distributed with earlier versions of Windows.0
flifFree Lossless Image Format0
mkv

Matroska media container, including WebM0
stg«SEAN : Session Analysis» Training file. Also used in compatible software «Rpw : Rowperfect for Windows» and «RP3W : ROWPERFECT3 for Windows».0
djvu

The following byte is either 55 ( U ) for single-page or 4D ( M ) for multi-page documents.

deblinux deb file0!.
webpGoogle WebP image file0RIFF….

U-Boot / uImage. Das U-Boot Universal Boot Loader. [38]0
rtfRich Text Format0
Microsoft Tape Format0
ts

MPEG Transport Stream (MPEG-2 Part 1)0

MPEG Program Stream (MPEG-1 Part 1 (essentially identical) and MPEG-2 Part 1)0
mpg

MPEG Program Stream

MPEG Transport Stream

MPEG-1 video and MPEG-2 video (MPEG-1 Part 2 and MPEG-2 Part 2)

No Compression (no preset dictionary)

Best speed (no preset dictionary)

Default Compression (no preset dictionary)

Best Compression (no preset dictionary)

No Compression (with preset dictionary)

Best speed (with preset dictionary)

Default Compression (with preset dictionary)

Источник

Восстановление файлов по сигнатурам или “черновое” восстановление данных

Как данные хранятся на диске?

Что такое сигнатура файла. Смотреть фото Что такое сигнатура файла. Смотреть картинку Что такое сигнатура файла. Картинка про Что такое сигнатура файла. Фото Что такое сигнатура файлаЕсли развернуть любую из этих папок, то откроется ее содержимое: Что такое сигнатура файла. Смотреть фото Что такое сигнатура файла. Смотреть картинку Что такое сигнатура файла. Картинка про Что такое сигнатура файла. Фото Что такое сигнатура файла

Все, что мы видим в проводнике – имена файлов и папок, их размеры, дата создания и изменения, все эти сведения и хранятся в файловой системе, которую мы договорились называть “оглавлением”. Физически файловая система – это область диска, выделенная для хранения этих данных, которые ещё называют “метаданными”, то есть “данными о данных”. Когда мы удаляем файл или папку с жесткого диска, в файловой системе (оглавлении нашей книги) удаляется соответствующая запись (или просто помечается как удаленная), сами же данные при этом остаются на диске, но то место, которое они занимали теперь считается незанятым, а значит, когда мы будем записывать новые файлы, эта область диска может быть ими перезаписана. Именно поэтому после случайного удаления никогда не следует ничего записывать на диск или флэшку, ведь чем больше информации вы запишете на диск после случайного удаления файлов, тем больше вероятность, что старые данные будут перезаписаны новыми, и тогда восстанавливать уже будет нечего.

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

Что такое сигнатура файла?

Как известно, данные в файлах хранятся в цифровом виде. Для того, чтобы отличить один тип файла от другого и придумана сигнатура, то есть подпись (разумеется, тоже цифровая). Она размещена в начале файла и является идентификатором типа файлов. Это проще показать, чем рассказать. Рассмотрим сигнатуру файла на примере распространенного формата для хранения фотографий jpeg. Если открыть любой файл jpeg в шестнадцатеричном редакторе, то мы увидим одну и ту же последовательность символов в одном и том же месте:

Что такое сигнатура файла. Смотреть фото Что такое сигнатура файла. Смотреть картинку Что такое сигнатура файла. Картинка про Что такое сигнатура файла. Фото Что такое сигнатура файла

Сигнатуры есть не у всех типов файлов: если, например, открыть в шестнадцатеричном редакторе текстовый файл (с расширением txt), то мы обнаружим, что там нет никакой сигнатуры: с самого первого байта начинается текст:

Что такое сигнатура файла. Смотреть фото Что такое сигнатура файла. Смотреть картинку Что такое сигнатура файла. Картинка про Что такое сигнатура файла. Фото Что такое сигнатура файла

Как восстанавливают файлы по сигнатурам

Что такое сигнатура файла. Смотреть фото Что такое сигнатура файла. Смотреть картинку Что такое сигнатура файла. Картинка про Что такое сигнатура файла. Фото Что такое сигнатура файла

А если открыть ее в оснастке “Управление дисками”, то мы увидим, что на ней нет файловой системы:

Что такое сигнатура файла. Смотреть фото Что такое сигнатура файла. Смотреть картинку Что такое сигнатура файла. Картинка про Что такое сигнатура файла. Фото Что такое сигнатура файла

Что такое сигнатура файла. Смотреть фото Что такое сигнатура файла. Смотреть картинку Что такое сигнатура файла. Картинка про Что такое сигнатура файла. Фото Что такое сигнатура файла

Я создал на флэше одну папку с именем “Осень 2020” и записал в нее 129 файлов jpeg в среднем качестве: каждый файл занимает приблизительно 4-5 Мб дискового пространства. Если теперь еще раз отформатировать эту флэшку, то она будет отображаться в проводнике как пустой диск:

Что такое сигнатура файла. Смотреть фото Что такое сигнатура файла. Смотреть картинку Что такое сигнатура файла. Картинка про Что такое сигнатура файла. Фото Что такое сигнатура файла

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

После создания задачи восстановления данных в комплексе PC-3000 мы увидим такую картину:

Что такое сигнатура файла. Смотреть фото Что такое сигнатура файла. Смотреть картинку Что такое сигнатура файла. Картинка про Что такое сигнатура файла. Фото Что такое сигнатура файла

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

Что такое сигнатура файла. Смотреть фото Что такое сигнатура файла. Смотреть картинку Что такое сигнатура файла. Картинка про Что такое сигнатура файла. Фото Что такое сигнатура файла

Что такое сигнатура файла. Смотреть фото Что такое сигнатура файла. Смотреть картинку Что такое сигнатура файла. Картинка про Что такое сигнатура файла. Фото Что такое сигнатура файла

Такую последовательность программа считает окончанием текущего файла. Осталось только сохранить в памяти смещение, по которому находится начало файла и его размер и можно двигаться дальше в поисках следующего. Итак, все файлы найдены и теперь их можно сохранить на диск (разумеется не на тот же, с которого мы восстанавливаем данные). После сохранения, зайдя в папку с восстановленными файлами, мы видим, что восстановление прошло корректно:

Что такое сигнатура файла. Смотреть фото Что такое сигнатура файла. Смотреть картинку Что такое сигнатура файла. Картинка про Что такое сигнатура файла. Фото Что такое сигнатура файла

Но здесь мы обнаружим одну особенность: файлы имеют другие названия, а главное они все сложены в одну папку. Почему? Потому, что информация об именах файлов, каталогах в которых они хранились (и множество других атрибутов файлов), хранится только в файловой системе. А при поиске по сигнатурам эту информацию просто негде взять. Это один из существенных минусов способа чернового восстановления данных, но не единственный. Об остальных позже.

Стоит отметить, что jpeg – это, пожалуй, один из самых простых форматов для восстановления по сигнатурам, именно поэтому я взял его в качестве примера. Алгоритм восстановления файлов других форматов сложнее и имеет в каждом случае свои особенности: например, многие форматы файлов не имеют признака окончания файла. Тогда для определения последнего сектора файла используется либо начало следующего файла, либо размер определяется по метаданным, которые содержатся в самом файле. Более сложные алгоритмы восстановления данных учитывают все эти нюансы, которые у каждого типа файлов свои, их описание выходит за рамки этой статьи.

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

Когда восстановление по сигнатурам не поможет?

Удаленные файлы были перезаписаны новыми данными

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

Файлы были фрагментированы на диске

Что значит “фрагментированы”? Такая ситуация возникает, когда диском или флэшкой активно пользуются (то есть почти всегда): записывают какие-то данные, потом удаляют ненужную или устаревшую информацию, затем снова записывают новые данные и так далее. В этом случае дисковое пространство становиться похоже на лоскутное одеяло: сначала идет часть с данными, потом пробелы, потом снова данные, снова пробелы из свободного пространства и так далее до конца диска. И если на диск нужно записать новый файл достаточно большого объема, то файловая система ищет на диске большую свободную область, и если весь файл туда не помещается, то записывает туда начало файла, затем дописывает оставшуюся часть (или части) в другую область диска. В этом случае один файл может быть разбит на несколько разных фрагментов, а информация о том, где какой фрагмент находится, хранится опять же в файловой системе (помните про оглавление книги), только теперь уже одному файлу соответствует не одна строчка в нашем оглавлении, а несколько, в зависимости от количества фрагментов, на которые он был разбит. И если этих записей больше нет в файловой системе, то никакой поиск не поможет восстановить файл целиком: ведь по сигнатуре мы можем определить только начало файла, а вот где находится его продолжение алгоритм уже не сумеет определить: эта информация хранится только в самой файловой системе и нигде больше ее нет. Поэтому восстановление файлов по сигнатурам не сработает в случае с фрагментированными файлами. Такие фалы либо вообще не будут открываться, либо будут “битыми” (поврежденными). Вот как выглядит такой “битый”, частично восстановленный файл, на примере все того-же jpeg:

Что такое сигнатура файла. Смотреть фото Что такое сигнатура файла. Смотреть картинку Что такое сигнатура файла. Картинка про Что такое сигнатура файла. Фото Что такое сигнатура файла

Данные на диске были зашифрованы

Требуется полноценное восстановление файловой системы

Часто бывает, что для получения доступа к данным недостаточно извлечь сами файлы, требуется еще и восстановление имен файлов и папок, в которых они были разложены. Например, это необходимо, если сами файлы были частью какого-то структурированного набора данных: базы 1С, коллекцией музыкальных сэмплов, и т.п. В этом случае требуется полноценное восстановление файловой системы со всей структурой папок, иначе программа не заработает, а сами данные будут бессмысленны для пользователя.

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

Ну а у меня на сегодня все. Берегите себя и свои данные! Автор: Вадим Шестернин aka WAIK. Лаборатория восстановления данных Advanced Group, Санкт-Петербург 11.09.2020.

Источник

Методы обнаружения «склеенных» файлов

Что такое сигнатура файла. Смотреть фото Что такое сигнатура файла. Смотреть картинку Что такое сигнатура файла. Картинка про Что такое сигнатура файла. Фото Что такое сигнатура файла

Многие могли слышать о таких файлах, как rarjpeg’и. Это особый вид файлов, представляющий собой склеенную вплотную jpeg-картинку и rar-архив. Он является прекрасным контейнером для скрытия факта передачи информации. Создать rarjpeg можно с помощью следующих команд:

UNIX: cat image1.jpg archive.rar > image2.jpg
WINDOWS: copy /b image1.jpg+archive.rar image2.jpg

Или же при наличии hex-редактора.

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

Методы детектирования склеенных файлов можно разделить на три группы:

Есть ли жизнь после конца файла?

Для нахождения ответа на этот вопрос, необходимо углубиться в спецификации формата, который является «родоначальником» склеенных файлов и понять его структуру. Любой JPEG начинается с сигнатуры 0xFF 0xD8.

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

Первые восемь байт PNG-файла занимает следующая сигнатура: 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A. Сигнатура конца, которая заканчивает поток данных: 0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82.

Общая сигнатура для всех rar-архивов: 0x52 0x61 0x72 0x21 (Rar!). После неё идет информация о версии архива и прочие сопутствующие данные. Опытным путем было установлено, что архив заканчивается сигнатурой 0x0A, 0x25, 0x25, 0x45, 0x4F, 0x46.

Таблица форматов и их сигнатур:

ФорматНачальная сигнатураКонечная сигнатура
JPEG0xFF 0xD80xFF 0xD9
PNG0x89 0x50 0x4E 0x47 0x0D 0x0A 0x1A 0x0A0x49 0x45 0x4E 0x44 0xAE 0x42 0x60 0x82
RAR0x52 0x61 0x72 0x210x0A 0x25 0x25 0x45 0x4F 0x46

Алгоритм проверки на склейку в данных форматах предельно прост:

GIF и PDF

ФорматНачальная сигнатураКонечная сигнатура
GIF0x47 0x49 0x46 0x380x00 0x3B
PDF0x25 0x50 0x44 0x460x0A 0x25 0x25 0x45 0x4F 0x46

PDF документ может иметь более одного EOF-маркера, например, из-за неправильной генерации документа. Количество конечных сигнатур в GIF-файле равно количеству кадров в нем. Исходя из особенностей этих форматов, можно улучшить алгоритм проверки наличия приклеенных файлов.

Особенность ZIP-архивов заключается в наличие трех различных сигнатур:

СигнатурыОписание
0x50 0x4B 0x03 0x04Сигнатура обычного архива
0x50 0x4B 0x05 0x06Сигнатура пустого архива
0x50 0x4B 0x07 0x08Сигнатура архива, разделенного на части

Структура архива такова:

Local File Header 1
File Data 1
Data Descriptor 1
Local File Header 2
File Data 2
Data Descriptor 2
.
Local File Header n
File Data n
Data Descriptor n
Archive decryption header
Archive extra data record
Central directory

Больше всего интересна центральная директория, которая содержит метаданные о файлах в архиве. Центральная директория всегда начинается с сигнатуры 0x50 0x4b 0x01 0x02 и заканчивается сигнатурой 0x50 0x4b 0x05 0x06, после которых следует 18 байт метаданных. Что интересно, пустые архивы состоят только из конечной сигнатуры и 18 нулевых байт. После 18 байт следует область комментария к архиву, которая является идеальным контейнером для скрытия файла.

Для проверки ZIP-архива необходимо найти конечную сигнатуру центральной директории, пропустить 18 байт и искать сигнатуры известных форматов в области комментария. Большой размер комментария также свидетельствует о факте склейки.

Размер имеет значение

Структура AVI-файла следующая: каждый файл начинается с сигнатуры RIFF (0x52 0x49 0x46 0x46). На 8 байте идет уточняющая формат сигнатура AVI (0x41 0x56 0x49 0x20). Блок на смещении 4, состоящий из 4 байт, содержит начальный размер блока данных (порядок байт — little endian). Чтобы узнать номер блока, содержащего следующий размер, необходимо сложить размер заголовка (8 байт) и размер, полученный в блоке 4-8 байт. Таким образом вычисляется полный размер файла. Допускается, что вычисленный размер может быть меньше, чем реальный размер файла. После вычисленного размера файл будет содержать только нулевые байты (необходимо для выравнивания границы в 1 Кб).

Пример вычисления размера:

Что такое сигнатура файла. Смотреть фото Что такое сигнатура файла. Смотреть картинку Что такое сигнатура файла. Картинка про Что такое сигнатура файла. Фото Что такое сигнатура файла

СмещениеРазмерСледующее смещение
4314428+31442=31450

Как и AVI, WAV-файл начинается с сигнатуры RIFF, однако, у этого файла сигнатура с 8 байта — WAVE (0x57 0x41 0x56 0x45). Размер файла вычисляется таким же образом, как и AVI. Реальный размер должен полностью совпадать с вычисленным.

MP4 или MPEG-4 – формат медиаконтейнера, используемый для хранения видео- и аудиопотоков, также предусматривает хранение субтитров и изображений.
На смещении 4 байта расположены сигнатуры: тип файла ftyp (66 74 79 70) (QuickTime Container File Type) и подтип файла mmp4 (6D 6D 70 34). Для распознания скрытых файлов, нас интересует возможность вычисления размера файла.

Что такое сигнатура файла. Смотреть фото Что такое сигнатура файла. Смотреть картинку Что такое сигнатура файла. Картинка про Что такое сигнатура файла. Фото Что такое сигнатура файла

Рассмотрим пример. Размер первого блока находится на нулевом смещении, и он равен 28 (00 00 00 1С, порядок байт Big Endian); он же указывает на смещение, где находится размер второго блока данных. На 28 смещении находим следующий размер блока равный 8 (00 00 00 08). Чтобы найти следующий размер блока, необходимо складывать размеры найденных предыдущих блоков. Таким образом, вычисляется размер файла:

СмещениеЗначениеСледующее смещение
02828+0=28
28828+8=36
3630373936+303739=303775
3037756202303775+6202=309977

Этот широко используемый формат является также контейнером MPEG-4. MOV использует проприетарный алгоритм сжатия данных, имеет похожую на MP4 структуру и используется в тех же целях — для хранения аудио и видеоданных, а также сопутствующих материалов.
Как и MP4, любой mov-файл имеет на 4 смещении 4-х байтную сигнатуру ftyp, однако, следующая сигнатура имеет значение qt__ (71 74 20 20). Правило вычисления размера файла не изменилось: начиная с начала файла вычисляем размер следующего блока и складываем.

Метод проверки этой группы форматов на наличие «приклеенных» файлов заключается в вычислении размера по заданным выше правилам и сравнении его с размером проверяемого файла. Если текущий размер файла много меньше вычисленного, то это указывает на факт склейки. При проверке AVI-файлов допускается, что вычисленный размер может быть меньше размера файла из-за наличия добавленных нулей для выравнивания границы. В таком случае, необходимо проверять нули после вычисленного размера файла.

Проверяем Compound File Binary Format

Этот формат файла, разработанный в Microsoft, также известен под названием OLE (Object Linking and Embedding) или COM (Component Object Model). Файлы DOC, XLS, PPT принадлежат к группе CFB-форматов.

CFB-файл состоит из 512-байтного заголовка и секторов одинаковой длины, хранящих потоки данных или служебную информацию. Каждый сектор имеет свой собственный неотрицательный номер, исключение составляют специальные номера: «-1» — нумерует свободный сектор, «-2» — нумерует сектор, замыкающий цепочку. Все цепочки секторов определены в FAT-таблице.

Что такое сигнатура файла. Смотреть фото Что такое сигнатура файла. Смотреть картинку Что такое сигнатура файла. Картинка про Что такое сигнатура файла. Фото Что такое сигнатура файла

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

Аномальный размер файла

Как было сказано выше, любой CFB-файл состоит из заголовка и секторов равной длины. Чтобы узнать размер сектора, необходимо считать двухбайтное число на 30 смещении от начала файла и возвести 2 в степень этого числа. Данное число должно быть равно или 9 (0x0009), или 12 (0x000C), соответственно, размер сектора файла равен 512 или 4096 байт. После нахождения сектора необходимо проверить следующее равенство:

(FileSize — 512) mod SectorSize = 0

Если это равенство не выполняется, то можно указать на факт склейки файлов. Однако этот метод имеет существенный недостаток. Если злоумышленник знает размер сектора, то ему достаточно приклеить свой файл и ещё n байт, чтобы величина приклеенных данных была кратна размеру сектора.

Неизвестный тип сектора

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

FileSize = 512 + CountReal * SectorSize, где FileSize — размер файла, SectorSize — размер сектора, CountReal — количество секторов.

Определим также следующие переменные:

Очевидно, что при неравенстве CountClassified и CountReal можно сделать вывод о возможной склейке файлов.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *