• XSS.stack #1 – первый литературный журнал от юзеров форума

Вытягиваем Metadata из картинок с помощью Python

tabac

CPU register
Пользователь
Регистрация
30.09.2018
Сообщения
1 610
Решения
1
Реакции
3 332
Сегодня будем писать скрипт для получения метаданных из картинок фото. Метаданные - данные о самих данных. Сегодня мы научимся их доставать.
Для написания нам понадобится библиотека Pillow и argparse.
Код:
#!/usr/bin/python3.6
#тут указывайте свой путь к python
Код:
# -*- coding: utf-8 -*-
#кодировка
#импортируем необходимые модули
Код:
import argparse          
from PIL import Image
from PIL.ExifTags import TAGS
#функция ниже получает на вход имя файла(картинки) и имя файла(для вывода информации)
Код:
def getMetaData(imgname, out):
#получаем словарь из метаданных картинки и выводим его в терминал, #если не указано имя файла для вывода информации.
Код:
    try:
       metaData = {}
       imgFile = Image.open(imgname)
       print("Getting meta data...")
       info = imgFile._getexif()
       if info:
           print("Found meta data!")
#перебор данных в словаре с метаданными
Код:
           for (tag, value) in info.items():
               tagname = TAGS.get(tag, tag)
               metaData[tagname] = value
               if not out: 
                   print(tagname, value)
#если указано имя файла то выводим в файл
Код:
          if out:
               print("Outputting to file...")
               with open(out, 'w') as f:
                   for (tagname, value) in metaData.items():
                       f.write(str(tagname)+"\t"+str(value)+"\n")
#если произошла ошибка выводим сообщение о ней
Код:
    except:
       print("Failed")
#функция main(). Парсим в ней аргументы командной строки.
Код:
def main():
   parser = argparse.ArgumentParser()
   parser.add_argument("img", help="name of img file.")
   parser.add_argument("-o", "--output", help="dump data out to file")
   args = parser.parse_args()
   if args.img:
       getMetaData(args.img, args.output)
   else:
       print(parser.usage)
#точка входа
Код:
if __name__ == '__main__':
   main()

Пример вывода нашего скрипта:

a3d04f5e19c1362162559.png


(c) By Hacker
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх