January 8, 2022

Подделка метаданных. Проги под windows и под Linux.

С помощью программ mat и mat2 можно просматривать и удалять метаданные файлов (поддерживается огромное количество типов файлов). Но что если вместо удаления нужно изменить метаданные в фотографии или в документе? Эти программы не помогут в данной задаче.

Но есть другие инструменты, которые могут менять GPS координаты, дату и время съёмки, информацию о камере и любую другую метаинформацию, которую только может содержать файл. Также они могут выборочно удалять те или иные теги. Например, можно удалить GPS координаты, но оставить информацию о камере. А можно наоборот добавить комментарии в метаинформацию, например, с описанием события и других замечаний о сделанном снимке.

Дополнительно мы разберёмся в различных способах записи координат — чтобы что-то записать или отредактировать, нужно в этом разбираться. Также мы научимся копировать значения координат из фотографии в карту, чтобы можно было просмотреть место съёмки без загрузки изображения на сторонние сервисы.

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

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

В этой инструкции мы рассмотрим сразу три потрясающих программы:

Они все работают и на Linux и на Windows — по ссылкам для каждой из них есть подробные инструкции по установке. У программы Geotag ещё и графический интерфейс! То есть спуфинг (подмена) GPS на фотографиях сводится к редактированию цифр в таблице.

Самой мощной из этих программ является ExifTool (кстати, оцените документацию по ней). При работе с редактированием географических координат, Geotag использует именно ExifTool, поэтому если вы используете Geotag на Windows вам нужно также установить и ExifTool и указать путь до исполнимого файла (в инструкциях по ссылкам выше всё уже есть). Кстати, mat2 для показа и удаления метаинформации также использует ExifTool. А Exiv2 использует, например, редактор фотографий GIMP для показа и редактирования метаинформации.

Также менять метаданные умеет программа jhead, но её возможности очень ограниченные — например, она не может менять GPS координаты в фотографии.

Географические координаты

Географические координаты это широта и долгота.

Широта определяет расположение «вверх-вниз» на глобусе/карте. Нулём считается экватор. Долгота определяет расположение «вправо-влево» на глобусе/карте. Нулём считается Гринвич. О самих числах и как «на глаз» прикидывать в какой части планеты расположены координаты мы поговорим ниже, а пока про то, как их записывают — форматов координат много.

Форматы записи географических координат

Координаты (широта от −90° до +90°, долгота от −180° до +180°) могут записываться:

  • в ° градусах в виде десятичной дроби (современный вариант)
  • в ° градусах и ′ минутах с десятичной дробью
  • в ° градусах, ′ минутах и ″ секундах с десятичной дробью (исторически сложившаяся форма записи)

Разделителем десятичной дроби может служить точка или запятая. Положительные знаки координат представляются (в большинстве случаев опускаемым) знаком «+» либо буквами:

  • «N» или «с. ш.» — северная широта,
  • «E» или «в. д.» — восточная долгота.

Отрицательные знаки координат представляются либо знаком «−», либо буквами:

  • «S» или «ю. ш.» — южная широта,
  • «W» или «з. д.» — западная долгота.

Буквы могут стоять как впереди, так и сзади. Единых правил записи координат не существует.

На картах поисковых систем по умолчанию показываются координаты в градусах с десятичной дробью со знаком «−» для отрицательной долготы. На картах Google и картах Яндекс вначале широта, затем долгота. Эти координаты видны, например, при прокладке маршрутов от произвольных точек. При поиске распознаются и другие форматы.

Нам необязательно во всём этом детально разбираться. С практической точки зрения нам надо запомнить: искать на сервисах карт (например, Google Карты) можно координаты в формате «2 числа с десятичной дробью; разделителем десятичной дроби является точка».

К примеру, в окно поиска по карте вместо географического названия можно ввести два десятичных числа, допустим: 12.459444 99.978611. И Карты покажут вам место на планете, располагающееся по соответствующим координатам.

Но вот в метаданных координаты хранятся в виде трёх чисел — по этой причине программы, показывающие метаданные файлов, по умолчанию также показывают их в виде трёх чисел (градусы, минуты и секунды).

Например, exiftool:

1

2

12 deg 27' 34.00" N

99 deg 58' 43.00" E

А exiv2 выводит так:

1

2

12deg 27' 34"

99deg 58' 43"

В принципе, координаты легко конвертируются в десятичные числа, но эту работу можно не делать, об этом ниже.

Ещё можно добавить, что, например, Google Карты принимают следующие форматы:

  • Градусы, минуты и секунды: 41°24'12.2"N 2°10'26.5"E
  • Градусы и десятичные минуты: 41 24.2028, 2 10.4418
  • Десятичные градусы: 41.40338, 2.17403

Но удобнее всего использовать именно десятичный формат.

Как вывести координаты в десятичных числах из метаданных GPS

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

Я нашёл две программы, которые умеют показывать координаты в десятичном виде.

Во-первых, это Geotag.

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

С помощью опции «-lang ru» можно вывести название тегов метаинформации на русском языке:

1

exiftool -lang ru 20190930_095515.jpg

Если добавить опцию '-*GPS*' (кавычки обязательны!), то будут показаны только теги метаинформации, в названии которых присутствует строка «GPS»:

1

exiftool -lang ru '-*GPS*' 20190930_095515.jpg

Если нужна только широта и долгота, то название тегов такое «-GPSLatitude -GPSLongitude»:

1

exiftool -lang ru -GPSLatitude -GPSLongitude 20190930_095515.jpg

Наконец, если указать опцию -n, то координаты будут выведены в десятичном виде:

1

exiftool -lang ru -GPSLatitude -GPSLongitude -n 20190930_095515.jpg

Также помните, что с опцией -n не будут использоваться буквы для указания полушарий, а, если это требуется, будут выведены отрицательные числа.

Опция -c позволяет установить формат выводимых координат. Например, если вам слишком много (или слишком мало) цифр после десятичной точки, то их количество можно изменить этой опцией.

Например, чтобы показывалось только шесть цифр после точки, а также чтобы для обозначения полушарий не использовались буквы, а использовался знак минус нужно указать опцию -c '%+.6f'

1

exiftool -lang ru -GPSLatitude -GPSLongitude -c '%+.6f' 20190930_095515.jpg

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