#!/usr/bin/env python3 # -*-coding:UTF-8 -* """ The Exif Module ====================== """ ################################## # Import External packages ################################## import os import sys from PIL import Image, ExifTags, UnidentifiedImageError sys.path.append(os.environ['AIL_BIN']) ################################## # Import Project packages ################################## from modules.abstract_module import AbstractModule class Exif(AbstractModule): """ CveModule for AIL framework """ def __init__(self): super(Exif, self).__init__() # Waiting time in seconds between to message processed self.pending_seconds = 1 # Send module state to logs self.logger.info(f'Module {self.module_name} initialized') def compute(self, message): image = self.get_obj() print(image) try: img = Image.open(image.get_filepath()) img_exif = img.getexif() print(img_exif) if img_exif: self.logger.critical(f'Exif: {self.get_obj().id}') gps = img_exif.get(34853) print(gps) self.logger.critical(f'gps: {gps}') for key, val in img_exif.items(): if key in ExifTags.TAGS: print(f'{ExifTags.TAGS[key]}:{val}') self.logger.critical(f'{ExifTags.TAGS[key]}:{val}') else: print(f'{key}:{val}') self.logger.critical(f'{key}:{val}') sys.exit(0) except UnidentifiedImageError: self.logger.info(f'Invalid image: {image.get_filepath()}') # tag = 'infoleak:automatic-detection="cve"' # Send to Tags Queue # self.add_message_to_queue(message=tag, queue='Tags') if __name__ == '__main__': module = Exif() module.run()