§1.5. Что внутри файла

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

Форматы, основанные на других форматах

Компьютерные программы могут сохранять файлы различных форматов. Изначально разработчики каждой программы старались придумать свой формат, непохожий на другие. Впоследствии, однако, от этой практики стали отказываться, чтобы упростить разработку и сделать работу с файлами более универсальной. Например, изображения формата SVG представляют собой XML-документ, который можно прочитать и даже отредактировать с помощью текстового редактора, такого как Блокнот.

А файлы Microsoft Office, начиная с версии 2007, являются zip-архивами, в которых тоже содержатся XML-документы. Посмотрим, что это значит.

Возьмём какой-нибудь обычный .docx-файл и исследуем его уже известной нам командой binwalk.

Как видим, файл на самом деле представляет собой ни что иное, как обыкновенный zip-архив с расширением .docx.

Ничто не мешает нам переименовать файл, изменяя его расширение на .zip, разархивировать его, поместить туда какие-нибудь дополнительные файлы, заархивировать снова и изменить расширение обратно на .docx. Документ при этом откроется так же, как и раньше.

Метаданные

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

Примерами метаданных могут служить: информация об авторе и названии песни, координаты точки съёмки фотографии, описание настроек алгоритма сжатия видео, текстовые комментарии.

Большинство основных форматов изображений поддерживают хранение метаданных по одному или нескольким стандартам: EXIF, IPTC, XMP. Метаданные изображений показывает утилита exiv2. По умолчанию она показывает только часть метаданных. Чтобы увидеть все имеющиеся в изображении метаданные, нужно вызывать команду с аргументом: exiv2 -pa. Кроме того, некоторые изображения могут отдельно содержать комментарий; его покажет команда exiv2 -pc.

Аналогичные стандарты предусмотрены для аудиофайлов (например, ID3-теги для MP3), видео и других данных.

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

Выводы

  1. Некоторые форматы файлов основываются на более универсальных форматах. Утилита binwalk раскрывает их истинную сущность.

  2. Документы Microsoft Office, начиная с версии 2007, являются zip-архивами.

  3. В файлах, помимо собственно данных, бывают различные метаданные. Об их наличии часто забывают. Удобно смотреть их с помощью специальных утилит.

§1.6. Изображения ⟶