Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Yoghurt en 22 Septiembre 2011, 07:37 am



Título: [aporte] MIME identificar archivos por su contenido
Publicado por: Yoghurt en 22 Septiembre 2011, 07:37 am
Mas de alguno a querido saber el tipo de algun archivo como lo hacen los sistemas basados en UNIX basandose puramente en su contenido, pues he creado un modulo ocupando esa información para que nada se les escape, se llama MIME.

Descripción:
Módulo que intenta detectar el tipo de los archivos basandose en su contenido. Mediante los conocidos Magics. Contiene al menos 317 entradas que identifican archivos, incluyendo texto, musica, imagen, videos y otros.

Ej de que son los magics:
cangrejo_canguroo.pdf --> MAGIC = "%PDF-" --> MIME = "application/pdf" --> EXTENSION = "pdf"

Usos:
Tiene un montón de usos, desde saber si el archivo solicitado es realmente del tipo de archivo requerido, listar todos los archivos de un tipo por ejemplo MSWord, reconocer ejecutables camuflados, organizacion de archivos... etc.

>> Descargar << (https://docs.google.com/open?id=0B0VhmqpZV2dHSVBzVVI0VkR0ejg)
Desde Google Drive (Archivo->Descargar)

Estaré actualizando el codigo recurrentemente por lo que se aceptan sugerencias y mejoras, claro pueden ir diciendome sus propios magics para añadirlos a la lista o hacer peticiones sobre archivos.


Título: Re: MIME identificar archivos por su contenido
Publicado por: Elemental Code en 23 Septiembre 2011, 03:09 am
osea que yo le largo adentro un archivo sin extensión y me dice de que tipo es?
Si no no entendi :S

PD: habia leido en la esc, que todos los archivos en los primeros 3 caracteres decian que tipo de archivo eran o algo asi  :silbar:


Título: Re: MIME identificar archivos por su contenido
Publicado por: raul338 en 23 Septiembre 2011, 03:14 am
osea que yo le largo adentro un archivo sin extensión y me dice de que tipo es?
Si no no entendi :S
Exactamente, y si renombras un archivo mp3 a JPG, que te detecte que es un MP3 :P


Título: Re: [aporte] MIME identificar archivos por su contenido
Publicado por: raul338 en 17 Julio 2012, 13:00 pm
Up por modificación


Título: Re: [aporte] MIME identificar archivos por su contenido
Publicado por: 79137913 en 17 Julio 2012, 13:58 pm
HOLA!!!

En su momento no quise comentar este tema por que es viejo pero ya que lo bumpearon...

Tiene estos detalles:
Reconoce a los docx xlsx y demas formatos nuevos de office como un zip (realmente lo son) pero son documentos de office mas que un comprimido.
No reconoce .txt o .text.

Pero tengo que reconocer que es util.

P.D:
Estaria bueno que detecte si el archivo fue "unido" a otro usando algo similar a copy /b por ejemplo cuando pones un jpg y un rar en el mismo archivo y le cambias la extension y funcionan ambos.

GRACIAS POR LEER!!!


Título: Re: [aporte] MIME identificar archivos por su contenido
Publicado por: Yoghurt en 19 Julio 2012, 12:00 pm
Actualizado MIME version 1.1, julio 18, 2012

 * Añadida la propiedad 'ext' en la declaracion de TYPE_MIME la cual
   contendra informacion sobre la extension del archivo en cuestion.
 * Adicion de informacion sobre extension.
 * Añadido el reconocimiento de archivos de texto plano entre otros.
 * Añadida la opcion de buffer para no tener que leer el archivo cada vez.
 * Modificacion para interpretar numeros negativos en 'offset_start' y
   'offset_end' interpretandose desde el final del archivo hacia el principio.
 * Añadida la funcion findMime que busca el Magic directamente desde un string.
 * Modificaciones y optimizaciones al codigo en general.
 * Eliminados los tipos de pattern ahora se usa uno solo (escaped strings)


He modificado el codigo de forma que sea más eficiente. Ademas he añadido el reconocimiento para los nuevos formatos de la suite de office (testeado con OpenOffice.org), los archivos de texto "plano" (.txt) tambien serán reconocidos. Por otra parte los archivos unidos mediante "copy /b file1.jpg + file2.rar" no seran reconocidos porque el file2.rar esta dentro del file1.jpg justamente desde donde el file1.jpg termina, por lo que el "magic" no cambia. Ahora, podria hacer un "parche" como lo hice para los ".txt" textos planos aunque no se si ayudaria el reconocer ese tipo de archivos...ademas de la insertidumbre de ponerle un nombre "mime" y una "extension".

El link de descarga será el mismo.


Título: Re: [aporte] MIME identificar archivos por su contenido
Publicado por: BlackZeroX en 19 Julio 2012, 22:17 pm
Es una gran lista la que tienes, aqui te dejo la pagina de los MIME TYPE.
http://www.iana.org/assignments/media-types/index.html

Dulces Lunas!¡.


Título: Re: [aporte] MIME identificar archivos por su contenido
Publicado por: karmany en 21 Julio 2012, 09:32 am
Buena aportación.

Dos cosas:
  • Sería interesante que añadieras el compilado o un demo para que podamos ser beta-testers
  • No sé si la tienes implementada, o tal vez lleve demasiado tiempo hacerlo, pero una buena opción podría ser la extracción de tipos de archivo. Muchos ficheros contienen otros embebidos.

Gracias por compartir.


Título: Re: [aporte] MIME identificar archivos por su contenido
Publicado por: Yoghurt en 22 Julio 2012, 09:16 am
  • Sería interesante que añadieras el compilado o un demo para que podamos ser beta-testers
Este codigo es para ser integrado en Visual Basic aunq podria hacer una beta para que sea probado, asi no tendríamos que desconfiar y servira para encontar errores pues no puedo probarlo con tantos archivos, asi que lo haré ;)

  • No sé si la tienes implementada, o tal vez lleve demasiado tiempo hacerlo, pero una buena opción podría ser la extracción de tipos de archivo. Muchos ficheros contienen otros embebidos.
Mmm... Si, me he encontrado con estos casos como los archivos de recursos de algun juego (o el .rar dentro de un .jpg). Tengo una "utilidad" para extraer de forma "rustica" por decirlo asi archivos que estan incrustados dentro de otro archivo con ayuda de este metodo. Lo hice para detectar y extraer PNG, GIF, JPG, BMP, AVI, WAV, MIDI, SWF, OGG, AU y MP3 con tag ID3. Le he puesto xtract y lo encuentras en: http://sdrv.ms/LG1BWQ


Título: Re: [aporte] MIME identificar archivos por su contenido
Publicado por: Yoghurt en 31 Agosto 2012, 12:25 pm
Y listo... He subido un compilado sencillo para testear los archivos, he puesto 3 botones los cuales ayudarán a recolectar información valiosa sobre errores de acuerdo a si:

* No ha reconocido un archivo que es conocido por el programa o por la persona.
* Ha dado mala informacion sobre el tipo de archivo.
* Y si decean que se reconozca o incluya en el codigo algun archivo que deceen.


La información recopilada consta de los primeros 64 bits del archivo en cuestion (escrita en texto hexadecimal) para una revision acerca del problema/detalle o examen para detectar el archivo. La información no es enviada automaticamente solo es escrita en el archivo "info_plase_send_mail.info" junto a la aplicacion por lo que deberá adjuntar el archivo via e-mail. Para quienes decean contribuir favor de usar estos emails, dreaderfunkonak@gmail.com / abrahamaraon@hotmail.com de antemano gracias.


>> El enlaze de descarga es el mismo.