Руководство по GPS метаданным в фотографиях: Как изменить GPS и другие метаданные в фотографии. Часть 1 | Indite — Медиахостинг

Руководство по GPS метаданным в фотографиях: Как изменить GPS и другие метаданные в фотографии. Часть 1

WebNet

visibility
5 Окт 2020
#Обучение

Посмотрите на метаданные этого изображения: https://hackware.ru/files/Kremlin.zip

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

615


Файл помещён в архив, чтобы вы смогли оценить ещё и дату изменения.

616


Прочитав эту инструкцию, вы сможете шутить над любителями проверять метаданные, а также над сервисами, которые автоматически указывает место съёмки (Инстаграм, Твиттер).

Как узнать координаты любого места
Для спуфинга GPS нужно знать, какие географические координаты имеет нужное место. Это можно сделать открыв карту (https://www.google.com/maps), затем найдите нужное вам место и настройте вид так, чтобы оно было в центре, если нужно, увеличьте масштаб. Затем посмотрите на адресную строку веб-браузера, там будет что-то вроде: https://www.google.com/maps/@14.9684368,98.6656482,10.75z

Первые два числа после @, которые разделены запятыми, это и есть широта и долгота.

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

Чтобы манипулировать тегами метаинформации (удалять, изменять, показывать, исключать выбранные теги) нужно знать их название. Названия тегов стандартизировано.

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

Правильное название тега можно посмотреть с помощью программы Exiv2 если запустить её с опцией «-p a»:


sexiv2 -p a ФОТОГРАФИЯ


617


Название тегов из этого вывода можно использовать и для ExifTool — нужно брать часть имени после последней точки. А в Exiv2 нужно использовать полное имя.

Этот способ кажется простым, но он это НЕ идеальный вариант, поскольку программа exiv2 поддерживает всего три группы тегов: Exif, IPTC и XMP. А групп тегов десятки (не тегов, а ГРУПП) — в документации по ExifTool перечислены группы тегов, которые поддерживает эта программа, оцените их количество.

У программы ExifTool есть обширная документация по тегам с их правильным названием, чтобы её увидеть выполните команду:


man Image::ExifTool::TagNames


Существует много групп тегов, самой популярной для файлов .jpg является Exif. Также распространены IPTC, XMP, MakerNotes.

Посмотреть, к какой группе относится тег метаинформации можно программами exiv2 (с опцией -p a как это было показано выше — вначале идёт название группы, а затем название подгруппы и далее уже сам тег). А также с помощью exiftool если указать опцию -G. Вы можете добавить опцию -e чтобы не выводить композитные (ненастоящие, сформированные для удобства) теги:


exiftool -G -e ФОТОГРАФИЯ



618


Важно знать, что одна и та же информация может дублироваться в разных тегах, относящихся к разной группе. Более того, в одной группе могут быть теги с близкими функциями. Например, в группе Exif имеются теги DateTime, DateTimeOriginal и DateTimeDigitized — все они связаны с временем создания. Также в этой группе есть теги Model и Software — последний тег содержит название прошивки телефона и позволяет однозначно определить модель, как и первый тег, который содержит название модели.

Примеры тегов, относящихся ко времени:

[File] File Modification Date/Time : 2020:12:13 11:37:12+03:00
[File] File Access Date/Time : 2020:12:14 07:44:19+03:00
[File] File Inode Change Date/Time : 2020:12:14 07:43:58+03:00
[EXIF] Modify Date : 2019:11:10 16:17:30
[EXIF] Date/Time Original : 2019:11:10 16:17:30
[EXIF] Create Date : 2019:11:10 16:17:30
[EXIF] GPS Time Stamp : 09:17:30
[EXIF] GPS Date Stamp : 2019:11:10
[MakerNotes] Time Stamp
ile — это не совсем метаинформация, это свойства файла.

Примеры тегов, которые позволяют определить тип и модель устройства:

[EXIF] Make : samsung
[EXIF] Camera Model Name : SM-J710F
[EXIF] Software : J710FXXU6CSE1
[MakerNotes] Device Type : Cell Phone
Примечание: это не все возможные теги и дубликаты. Это теги, которые я нашёл в первой попавшейся фотографии.

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


exiv2 -p a 20190930_095515.jpg | wc -l
63


А теперь для exiftool:


exiftool -e 20190930_095515.jpg | wc -l
76


Это объясняется тем, что программа Exiv2 поддерживает только три группы тегов: Exif, IPTC и XMP. А программа ExifTool поддерживает практически все возможные группы.

Помните о том, что некоторые файлы не позволяют полностью удалять метаинформацию из них. Пример таких файлов — PDF. Изменения файлов PDF с помощью ExifTool обратимы (путём удаления обновления с помощью «-PDF-update:all=»), поскольку исходная информация никогда не удаляется из файла. Таким образом, один только ExifTool нельзя использовать для безопасного редактирования метаданных в файлах PDF.

Также нужно быть осторожным с MakerNotes. Например, командой полного удаления MakerNotes мне так и не удалось избавиться от тега с отметкой времени в MakerNotes, хоте все другие теги из этой группы удалялись. В RAW (необработанных) форматах в MakerNotes могут храниться важные сведения для последующей обработки изображения, то есть нужно быть осторожным с удалением этой группы.

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

Программы вроде mat и mat2 могут очистить сразу все метаданные. Но ExifTool позволяет удалять определённые теги или оставлять определённые теги. Например, можно удалить только GPS метаданные оставив всю остальную информацию нетронутой. Рассмотрим несколько примеров.

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

Как удалить только GPS метаданные
Для удаления всех GPS геотегов с помощью ExifTool используйте опцию «-gps:all=»:


exiftool -gps:all= ФОТОГРАФИЯ


При этом исходный файл будет сохранён, к его имени (после расширения) будет добавлено «_original». Кстати, команда exiv2 перезаписывает существующий файл не делая резервную копию.

При использовании команды exiftool новый файл заменяет исходный (хотя сохраняет его резервную копию), с помощью опции -o вы можете явно указать место и имя нового файла:

exiftool -gps:all= -o НОВЫЙ_ФАЙЛ.jpg ИСХОДНЫЙ_ФАЙЛ.jpg

Как удалить только дату и время создания

Для удаления меток времени используйте команду вида:

exiftool -Date:all= -Time:all= ФОТОГРАФИЯ

Для проверки имеющихся метаданных связанных со временем и датой:

exiftool -G ФОТОГРАФИЯ | grep -i -E '(date)|(time)'

Пример метаданных до удаления:

[File] File Modification Date/Time : 2020:12:13 11:37:12+03:00
[File] File Access Date/Time : 2020:12:13 11:45:29+03:00
[File] File Inode Change Date/Time : 2020:12:13 11:37:12+03:00
[EXIF] Modify Date : 2019:11:10 16:17:30
[EXIF] Exposure Time : 1/1439
[EXIF] Date/Time Original : 2019:11:10 16:17:30
[EXIF] Create Date : 2019:11:10 16:17:30
[EXIF] Sub Sec Time : 0980
[EXIF] Sub Sec Time Original : 0980
[EXIF] Sub Sec Time Digitized : 0980
[EXIF] GPS Time Stamp : 09:17:30
[EXIF] GPS Date Stamp : 2019:11:10
[MakerNotes] Time Stamp : 2019:11:10 12:17:31+03:00
[Composite] Create Date : 2019:11:10 16:17:30.0980
[Composite] Date/Time Original : 2019:11:10 16:17:30.0980
[Composite] Modify Date : 2019:11:10 16:17:30.0980
[Composite] GPS Date/Time : 2019:11:10 09:17:30Z
Пример метаданных после удаления:

[File] File Modification Date/Time : 2020:12:13 11:46:58+03:00
[File] File Access Date/Time : 2020:12:13 11:46:58+03:00
[File] File Inode Change Date/Time : 2020:12:13 11:46:58+03:00
[EXIF] Exposure Time : 1/1439
[MakerNotes] Time Stamp : 2019:11:10 12:17:31+03:00
File — это отметки времени в файловой системе. Они меняются вместе с изменением файла, но их можно установить на произвольные.

Также время создания файла сохранилось в MakerNotes. Как правило, теги MakerNotes считаются «Permanent» (постоянными) и могут редактироваться, но не могут быть созданы или удалены по отдельности. Это позволяет избежать многих потенциальных проблем, включая неизбежные проблемы совместимости с программным обеспечением OEM, которое может быть очень негибким в отношении информации, которую он ожидает найти в примечаниях производителя.

То есть мы можем удалить дату создания из MakerNotes, но только если удалим MakerNotes целиком. Для этого можно использовать команду вида:

exiftool -Date:all= -Time:all= -MakerNotes:all= ФОТОГРАФИЯ

Например:

exiftool -Date:all= -Time:all= -MakerNotes:all= 20191110_161731.jpg

Примечание: С помощью данной опции мне в моём тестовом изображении так и не удалось удалить Time Stamp из MakerNotes (хотя все другие теги в этой группе удалялись). Но у вас может не быть этой проблемы. Если сильно нужно, удалить Time Stamp из MakerNotes можно было бы по следующему алгоритму: 1) копирование Exif метаданных в файл; 2) полное удаление всех метаданных из файла (с помощью «-all=» удалялся в том числе и Time Stamp из MakerNotes); 3) восстановление Exif метаданных из файла.

Как удалить только информацию о камере
Используйте команду вида:

exiftool -Make= -Model= -Software= -makernotes:all= ФОТОГРАФИЯ

Например:

exiftool -Make= -Model= -Software= -makernotes:all= 20191110_161731.jpg

Для проверки метаданных связанных с моделью:

exiftool -G ФОТОГРАФИЯ | grep -i -E '(Make )|(Model)|(Software)|(Device)'

Пример вывода:

[EXIF] Make : samsung
[EXIF] Camera Model Name : SM-J710F
[EXIF] Software : J710FXXU6CSE1
[MakerNotes] Device Type : Cell Phone
После применения команды по очистке, при проверке вывод должен быть пустым.

Как удалить только примечание
Для удаления только примечания выполните команду вида:

exiftool -UserComment= ФОТОГРАФИЯ

Например:

exiftool -UserComment= 20191110_161731.jpg

Команда для проверки примечания в метаданных:

exiftool -G ФОТОГРАФИЯ | grep -i -E 'Comment'

Как изменить GPS координаты в фотографии
Изменение места съёмки в Geotag

В Geotag кликните на колонку «Широта» или «Долгота» снимка, для которого вы хотите изменить координаты и отредактируйте координаты для выбранной фотографии. Обратите внимание, что десятичная точка может быть как точкой, так и запятой (зависит от языка ОС). То есть если 55.7520263 и 37.6153107 было округлено до 55 и 37, то тогда введите 55,7520263 и 37,6153107 и наоборот.

619


Когда всё будет готово, кликните правой кнопкой мыши по изображению и выберите «Сохранить новые места».

Изменение места съёмки в ExifTool
В ExifTool место съёмки меняется следующими тегами:
  • -GPSLatitude — широта, знак числа неважен
  • -GPSLongitude — долгота, знак числа неважен
  • -GPSLatitudeRef N или S, то есть север или юг
  • -GPSLongitudeRef E или W, то есть восток или запад
Необязательно использовать сразу все теги.

Общая форма команды:

exiftool -GPSLatitude='ДЕСЯТИЧНОЕ.ЧИСЛО' -GPSLongitude='ДЕСЯТИЧНОЕ.ЧИСЛО' -GPSLatitudeRef='N|S' -GPSLongitudeRef='E|W' ФОТОГРАФИЯ

Пример:

exiftool -GPSLatitude='55.7520263' -GPSLongitude='37.6153107' -GPSLatitudeRef='S' -GPSLongitudeRef='W' ФОТОГРАФИЯ

Для проверки используйте команду (опция -e нужна чтобы не создавались композитные теги):

exiftool -G -e ФОТОГРАФИЯ | grep -i -E 'gps'

Изменение места съёмки в Exiv2
Эта программа принимает координаты в качестве трёх рациональных чисел. Три — это градусы, минуты, секунды. Рациональные — значит укажите дополнительно «/1».

Следующий пример устанавливает широту на 4 градуса 15 минут и 33 секунды северной широты. Стандарт Exif предусматривает, что тег GPSLatitude состоит из трёх рациональных чисел для градусов, минут и секунд широты, а GPSLatitudeRef содержит либо «N», либо «S» для северной или южной широты соответственно.

exiv2 -M"set Exif.GPSInfo.GPSLatitude 4/1 15/1 33/1" -M"set Exif.GPSInfo.GPSLatitudeRef N" image.jpg

Аналогичным способом устанавливается долгота.

Список тегов:
  • Exif.GPSInfo.GPSLatitude
  • Exif.GPSInfo.GPSLatitudeRef
  • Exif.GPSInfo.GPSLongitude
  • Exif.GPSInfo.GPSLongitudeRef
Как изменить дату съёмки в метаданных фотографии
Изменение даты съёмки в Geotag

В Geotag для снимков можно увидеть:
  • Время GPS
  • Смещение (часовой пояс)
  • Время камеры
620


Для изменения кликните правой кнопкой мыши по снимку, время создания которого вы хотите изменить, и выберите «Установленное время снимка».

621


Затем выберите желаемую дату и время, а также часовой пояс.

622


Но у меня эта функция сработала как-то странно — изменилось только «Время GPS», как поменять «Время камеры» мне непонятно.

Продолжение следует…