Obtener los archivos de imagen ofrecidos como prueba en su formato original.
De ser posible solicitar dos o más archivos indubitados tomados a partir del mismo dispositivo. Colocar todos los archivos en la misma carpeta
1. Descargar el aplicativo mediainfo.exe:
1.1. Dirigirse al sitio web: https://mediaarea.net/en/MediaInfo/Download/Windows
1.2. Identificar la versión CLI de 32 o 64 bits y descargarla. A la fecha el link de descarga directo es:
https://mediaarea.net/download/binary/mediainfo/21.03/MediaInfo_CLI_21.03_Windows_x64.zip
1.3. Descomprimir la carpeta y extraer el archivo mediainfo.exe
2. Crear el archivo mediainfo.bat con el siguiente contenido:
for %%f in (.\IMG\*) do mediainfo --Details=1 --Output=XML "%%f" >> "%%f.xml" PAUSE
2.1. Colocar el archivo mediainfo.exe y mediainfo.bat en una carpeta. Crear dentro de esa carpeta una subcarpeta de nombre IMG. Colocar todos los archivos a peritar en la subcarpeta IMG.
2.2. Ejecutar el archivo mediainfo.bat. Se generará dentro de la subcarpeta IMG un archivo xml por cada archivo de imagen obrante en dicha carpeta.
3. Realizar una comparación entre la estructura de uno de los archivos indubitados y la estructura del resto de los archivos. Verificar que no existan diferencias entre los archivos indubitados obrantes en la carpeta.
Observar y analizar las diferencias entre archivos dubitados e indubitados. Identificar patrones que puedan indicar alteraciones. Realizar la alteración manual de una imagen almacenándola con otro nombre y observar las diferencias que se presentan.
Para ello configurar el siguiente programa Python.
import difflib as dl import xml.etree.ElementTree as ET import os directory = r'D:\_UltimosPeritajes\' extension = '.xml' archivoIndubitadoTree = ET.ElementTree(file=r'D:\_UltimosPeritajes\PTT-20200523-WA0179.opus.xml') compararCantidadDeLineas = 100 archivoIndubitadoListado = [] listado = [] indent = 0 ignoreElems = ['displayNameKey', 'displayName'] def printRecur(root): """Recursively prints the tree.""" if root.tag in ignoreElems: return global indent global listado linea = ' '*indent + '%s: %s' % (root.tag.title(), root.attrib.get('name', root.text)) # print (linea) listado.append(linea) indent += 4 for elem in root.getchildren(): printRecur(elem) indent -= 4 archivoIndubitadoRoot = archivoIndubitadoTree.getroot() printRecur(archivoIndubitadoRoot) archivoIndubitadoListado = listado listado = [] archivoIndubitadoListadoTruncado = archivoIndubitadoListado[:compararCantidadDeLineas] diferenciasListado = [] for filename in os.listdir(directory): if (filename.endswith(extension)): print(os.path.join(directory, filename)) filenameTxt = filename + '.txt' archivoDubitadoTree = ET.ElementTree(file=os.path.join(directory, filename)) archivoDubitadoListado = [] archivoDubitadoRoot = archivoDubitadoTree.getroot() printRecur(archivoDubitadoRoot) archivoDubitadoListado = listado archivoDubitadoListadoTruncado=archivoDubitadoListado[:compararCantidadDeLineas] listado = [] contadorDeLineas = 0 with open(os.path.join(directory, filenameTxt), 'w') as f: diferencias = [] for diff in dl.context_diff(archivoIndubitadoListadoTruncado, archivoDubitadoListadoTruncado): f.write(diff) f.write('\n') diferencias.append(diff) diferenciasListado.append((filename, diferencias)) else: continue diferenciasListadoArchivos = [] for tupla in diferenciasListado: if( tupla[1] ): diferenciasListadoArchivos.append(tupla) primerElemento = diferenciasListadoArchivos[0] for tupla in diferenciasListadoArchivos: if (tupla[1] != primerElemento[1]): print (tupla[0] + " diferente ")
2. Descargar MozJPEG
https://mozjpeg.codelove.de/binaries.html
utilizar el aplicativo djpeg.exe para obtener la tabla de cuantización.
Comentarios
Publicar un comentario