miércoles, 3 de abril de 2013

brute_file_carving: recuperación de imágenes corruptas

Saludos,

El tema de éste post inicio con un interrogante.

Si tengo una cantidad de información en crudo como una imagen de un disco corrupta, o un archivo de word corrupto, o cualquier otro tipo de raw data (información en crudo) del cual puedo leer su código hexadecimal en crudo y del cual necesito sabe que tipo de archivos, información contiene ¿como recupero la información legible?





Algunos preconceptos a tener en cuenta:
Código hexadecimal
Como editar código hexadecimal
Headers y footers de tipos de archivos

Pues si el propósito es hacer el análisis manual de la información se me ocurrió hacer una prueba de concepto primero buscando en la lectura hexadecimal de la raw data (información en crudo) un header de una imagen jpg y buscar su correspondiente footer, en el caso de no encontrarse o de haber sido eliminado dicho footer no sabría donde termina la imágen.

Entonces empecé a hacer una prueba haciendo un script en python que leyera el código hexadecimal en crudo del archivo y fuera agregando el footer jpg luego de cada byte para hacer la prueba, al hacer ésto deberían generarse una serie de imágenes de las cuales luego verificaría de cuales de esas imágenes se generaría una vista previa en el explorador de archivos y proseguiría a observar como se ve dichas imágenes generadas.

Luego de terminar el script leí un poco sobre el concepto y encontré que dicha técnica se llamaba file carving por lo cual llamé al script brute file carving pero de hecho antes de hacer el script no había leído sobre la técnica y como se hacía.

El propósito era entonces simplemente recuperar una imágen pero me encontré con algo interesante, luego de ver las imágenes que se generaban, pude apreciar visualmente como es que se genera una imágen byte a byte, como se van creando los pixeles, como se siguen algunos patrones dependiendo de la imágen y el tamaño de las mismas , ésto es lo que les comparto hoy, el script que hice y el video de como funciona. La idea es hacer luego un video más extenso explícando cada parte del código del script.

Video de la prueba de concepto:




Código fuente del script: brute_file_carving.py











1 comentario:

  1. esta interesante espero que no se demore el lanzamiento del otro video puesto que puede servir como herramienta de trabajo

    ResponderEliminar