mirror of https://github.com/CIRCL/AIL-framework
				
				
				
			
		
			
				
	
	
		
			70 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
#!/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()
 |