viernes, 31 de octubre de 2014

Python.- Extrayendo Metadata con PIL

Hace menos de una semana os di la vara con el tema de los metadatos Exif y os presente un [par de PoC] para ver como se podía extraer y eliminar. La verdad es el código que utilice para la PoC de extraer metadatos utilizaba una librería un poco desfasada y de la que ya me queje [en la siguiente] entrada.


Así que me había llegado hace ya semanas el libro de Python para Pentesters y sabiendo que había un capitulo donde se hablaba de metadatos, he decidido volver a mirar el código a ver si podía sacar una idea y no solo me he encontrado con una idea si no con la solución entera. Ademas, utilizando la librería PIL así que no voy a tener que importar tantas cosas cuando junte los dos scripts y va a quedar un código mas bonito. 

from PIL.Exif.Tags import TAGS 
from PIL import Image 

def testForExif(imgFileName):
try: 
   exifData =  {}
   imgFile =  Image.open(imgFileName)
   info =  imgFile._getexif()
   print info
   if info:
         for (tag,value) in info.items(): 
               decoded = TAGS-get(tag,tag)
               exifData[decoded] = value
         exifGPS =  exifData['GPSInfo']
         if exifGPS: 
              print '[*] ' + imgFiileName + 'GPS Data: ' + exifGPS
except: 
    pass
testForExif('D:\\StateXMola.png')

La verdad es que me parece una solución cojonuda, solo que la mía estaba hecha con menos lineas de código. Pero, con esto ganamos unificar librerías y trabajar con una libreria que no está en desuso. Os recomiendo encarecidamente este libro porque la verdad es que es una maravilla.  

 Mas información del libro: 
Sed Buenos ;) 

No hay comentarios:

Publicar un comentario