Blog. Just Blog

Эвристическое определение производителей фотокамер

Версия для печати Добавить в Избранное Отправить на E-Mail | Категория: Software | Автор: ManHunter
Эвристическое определение производителей фотокамер
Эвристическое определение производителей фотокамер

Практически все современные фотокамеры записывают в фотографии большое количество различной информации, в том числе наименование производителя камеры и ее модель. Эту информацию можно легко посмотреть и не менее легко отредактировать или вообще удалить. При разработке Shutter Count Viewer я неоднократно сталкивался с подобными файлами и у меня возник вопрос: а можно ли определить хотя бы производителя камеры по каким-нибудь другим признакам, если информация в EXIF удалена, повреждена или модифицирована? Не думаю, что затронутая в статье тема будет интересна широкому кругу читателей, но на сбор этих данных я потратил много времени, и было бы жалко, если оно окажется потраченным впустую. К тому же, насколько я знаю, подобных исследований никто не проводил. Итак, поехали.

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

Сигнатура Nikon в заголовке секции MakerNote
Сигнатура Nikon в заголовке секции MakerNote

Сигнатура Samsung в заголовке секции MakerNote
Сигнатура Samsung в заголовке секции MakerNote

Сигнатура Pentax в заголовке секции MakerNote
Сигнатура Pentax в заголовке секции MakerNote

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

Если файл отредактирован в программе Adobe Photoshop, то она сохраняет в готовом изображении большое количество вспомогательной информации. Часто там можно найти название производителя и модель камеры, что также повышает точность определения, но совсем не обязательно эта информация должна там быть. Суть следующего метода эвристики заключается в том, что если в Photoshop был загружен RAW-файл, а затем сохранен в JPEG, то в истории редактирования может быть записана информация о названии исходного RAW-файла. Зная расширения RAW-файлов различных камер, можно также с большой вероятностью определить производителя. Например, если изображение было создано из файла с расширением .NEF, то значит исходный снимок был получен с камеры Nikon. Иногда вместо имени файла записывается его MIME-формат, из которого также можно узнать производителя.

Имя исходного RAW-файла в секции Photoshop
Имя исходного RAW-файла в секции Photoshop

Имя исходного RAW-файла в секции Photoshop
Имя исходного RAW-файла в секции Photoshop

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

Формат исходного RAW-файла в истории Photoshop
Формат исходного RAW-файла в истории Photoshop

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

Продолжив ковыряться в секции данных Photoshop, можно обнаружить там фрагменты названия камеры или названия объектива камеры. Логично предположить, что если для создания файла использовалось нечто под названием "COOLPIX P7000V1.1", то скорее всего имелся в виду фотоаппарат Nikon Coolpix P7000 с прошивкой версии 1.1, а объектив "Canon EF 35mm f/1.4L" наверняка был установлен на камере производства Canon. По таким вот косвенным "уликам" можно также с большой вероятностью определить производителя и, в некоторых случаях, даже модель камеры.

Название фотокамеры в секции Photoshop
Название фотокамеры в секции Photoshop

Название объектива Canon в секции Photoshop
Название объектива Canon в секции Photoshop

Следующий способ не очень надежный, но тоже имеет право на существование. Почти во все фотографии камеры записывают так называемый ICC-профиль, и иногда он является специфичным для конкретного производителя. К примеру, в основном встречаются цветовые профили HP или Adobe, но можно встретить и ICC-профили, явно принадлежащие Nikon и Canon.

Сигнатура Nikon в ICC-профиле
Сигнатура Nikon в ICC-профиле

Сигнатура Canon в ICC-профиле
Сигнатура Canon в ICC-профиле

Конечно, никто не запрещает при редактировании фотографии с камеры Canon задействовать цветовой профиль Nikon, но лично я далек от мысли, что в реальной ситуации кто-то будет это делать.

Заключительный способ эвристического определения производителя я выяснил при исследовании демонстрационных фотографий с официального сайта Nikon. В каждой фотографии я обнаружил интересную секцию с сигнатурой "MEDIABIN_DID". В сети нашлось очень мало информации об этом, но, как я понял, MediaBin - это что-то вроде сервиса цифровой дистрибьюции электронных произведений, в том числе и фотографий. Производитель регистрируется в системе, ему выдается что-то наподобие персональной цифровой подписи, с помощью которой в дальнейшем маркируются фотографии. Для фотографий с сайта Nikon приметной сигнатурой цифровой подписи является строка "NKBV" (видимо, первые две буквы - это сокращение от "Nikon").

Сигнатура Nikon в секции MediaBin
Сигнатура Nikon в секции MediaBin

В более новых фотографиях с сайта Nikon встречается электронная подпись с другой сигнатурой - "NIKM". По ней точно так же можно детектировать производителя камеры.

Сигнатура Nikon в секции MediaBin
Сигнатура Nikon в секции MediaBin

Подобные цифровые подписи я встречал также для изображений с сайта Microsoft, там тоже использовалась уникальная сигнатура, что подтверждает мои выводы. Вряд ли на сайте Nikon будут выкладываться фотографии, сделанные камерами Canon, поэтому наличие такой цифровой подписи MediaBin может являться признаком того, что фотография получена с фотоаппарата производства Nikon.

Несмотря на большое количество обрабатываемых данных, ни один из описанных способов не может дать 100% гарантии, что фотография сделана камерой того или иного производителя. Но теперь вы сами убедились, что даже после "обрубания хвостов" остается немало косвенных способов узнать интересующую информацию. Для полного удаления всей избыточной информации из ваших изображений я рекомендую пользоваться программой Total Exif Annihilator.

Скриншот программы Total Exif Annihilator
Скриншот программы Total Exif Annihilator

Кстати, даже если полностью удалить из фотографии вообще все мета-данные, остается еще один способ определить модель камеры, с помощью которой был сделан снимок. Он основан на том, что некоторые фотоаппараты делают снимки с уникальным разрешением. Особенно это касается профессиональных камер с большим количеством мегапикселей. Например, если изображение имеет размер строго 7360х4912 пикселей, то скорее всего оно сделано с помощью 36-мегапиксельной камеры Nikon D800 или следующих моделей этой линейки. Понятное дело, что точность такого метода эвристики не выдерживает никакой критики, но на всякий случай его тоже можно иметь в виду.

В архиве я собрал фотографии, на основании которых была подготовлена эта статья. У них вычищена или модифицирована секция EXIF, однако, если открыть файлы в программе Shutter Count Viewer, то вы увидите, что поле "Make" будет заполнено, тогда как другие программы ничего подобного не покажут.

Файлы-примеры для эвристического определения производителей фотокамерФайлы-примеры для эвристического определения производителей фотокамер

Heurtistic.Vendors.zip (85,102 bytes)

В качестве бонуса выкладываю свой набор вспомогательных утилит для облегчения работы при исследовании внутренней структуры графических файлов разных форматов. Все утилиты я написал для личных нужд и теперь активно использую их при разработке Shutter Count Viewer.

JPEG Dummy 1.0. Удаляет из JPEG-файла всю графическую информацию, оставляя только метаданные. Это позволяет экономить место на диске, значительно уменьшая размер тестовых файлов. Файлы-примеры обработаны как раз этой утилитой.

Image Extractor 1.0. Ищет в указанном файле любого формата изображения JPEG, PNG и GIF и сохраняет их в отдельные файлы. Иногда случаются ложные срабатывания.

JPEG & PNG Parser 1.0. Разбирает графические файлы в формате JPEG и PNG на отдельные секции.

Скриншот программы Image Info
Скриншот программы Image Info

Image Info 1.0. Отображает подробную информацию о секциях JPEG и PNG файлов. По принципу работы похожа на JPEG & PNG Parser, используется тот же алгоритм разбора внутренней структуры файлов. Двойной клик на строке - открыть секцию в hex-просмотрщике.

Все утилиты работают из командной строки, принимая единственным параметром имя файла.

Image ToolsImage Tools

Image.Tools-PCL.zip (37,336 bytes)


Поделиться ссылкой ВКонтакте Поделиться ссылкой на Facebook Поделиться ссылкой на LiveJournal Поделиться ссылкой в Мой Круг Добавить в Мой мир Добавить на ЛиРу (Liveinternet) Добавить в закладки Memori Добавить в закладки Google
Просмотров: 2690 | Комментариев: 5

Внимание! Статья опубликована больше года назад, информация могла устареть!

Комментарии

Отзывы посетителей сайта о статье
ManHunter (25.09.2017 в 12:06):
Обновил архив с файлами-примерами.
ManHunter (10.06.2016 в 14:34):
Добавлен еще один пример заголовка MakerNote и новая сигнатура Nikon в секции MediaBin.
ManHunter (11.12.2015 в 00:38):
В комплект вспомогательных утилит добавил свеженаписанную софтинку Image Info 1.0
Миха (29.09.2015 в 04:50):
Это мне напомнило случай, когда некоторые пользователи Windows XP определили, что многие стандартные WAV файлы были созданой крякнутым аудио редактором так как в них содержалось название аудио редактора и название кряка.
Foton (23.09.2015 в 17:52):
Спасибо, любопытно. До этого думал, что затереть EXIF достаточно.

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

Заполните форму для добавления комментария
Имя*:
Текст комментария (не более 2000 символов)*:

*Все поля обязательны для заполнения.
Комментарии, содержащие рекламу, ненормативную лексику, оскорбления и т.п., а также флуд и сообщения не по теме, будут удаляться. Нарушителям может быть заблокирован доступ к сайту.
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2018
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.07 сек. / MySQL: 2 (0.0027 сек.) / Память: 5 Mb
Наверх