send
Grupo de Telegram
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[Python] Identificador de tipos de archivo

  • 1 Respuestas
  • 2595 Vistas

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado khyv123

  • *
  • Underc0der
  • Mensajes: 15
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« en: Julio 20, 2011, 02:00:52 pm »
Este code sirve para identificar el tipo de un archivo en caso de que no se sepa la extensión del mismo). Soporta los siguientes tipos:

- Archivos de imagen: 'rgb', 'gif', 'pbm', 'pgm', 'ppm', 'tiff', 'rast', 'xbm', 'jpeg', 'bmp' y 'png'.
- Archivos de audio: 'aifc', 'aiff', 'au', 'hcom', 'sndr', 'sndt', 'voc', 'wav', '8svx', 'sb', 'ub' y 'ul'.
- Archivos comprimidos: 'zip' y 'tar'.
- Archivos de texto plano

Código: Python
  1. # ******************************************
  2. #     Autor : khyv123  
  3. #     Fecha de creacion : 20/07/11
  4. #     Creado para : www.underc0de.org
  5. # ******************************************
  6.  
  7. import imghdr,sndhdr
  8. from zipfile import is_zipfile
  9. from tarfile import is_tarfile
  10. from sys import argv,exit
  11. from os import path,rename
  12.  
  13. def options():
  14.         print '\nSintaxis: fileID.py -f (nombre_archivo) [-c]'
  15.         print '\n\t-f archivo\t\tArchivo a comprobar.'
  16.         print '\t-c\t\t\tCambiar extensiones reconocidas.'
  17.  
  18. if len(argv)>=2:
  19.  
  20.         des=ext=file=''
  21.         ch_ext = False
  22.  
  23.         for opt in argv[1:]:
  24.                 if opt.lower()=='-f':
  25.                         file=argv[int(argv[1:].index(opt))+2]
  26.                 elif opt.lower()=='-c':
  27.                         ch_ext= True
  28.  
  29.         if file=='':
  30.                 exit('\nArchivo no especificado.')
  31.         elif not path.exists(file):
  32.                 exit('\nArchivo no encontrado.')
  33.  
  34.         if imghdr.what(file)!=None:
  35.                 ext=imghdr.what(file)
  36.                 des=imghdr.what(file)+' (Archivo de imagen)'
  37.         elif sndhdr.what(file)!=None:
  38.                 ext=sndhdr.what(file)[0]
  39.                 des=sndhdr.what(file)[0]+' (Archivo de audio)'
  40.         elif is_zipfile(file)=='True':
  41.                 ext='zip'
  42.                 des='zip'+' (Archivo comprimido)'
  43.         elif is_tarfile(file)=='True':
  44.                 ext='tar'
  45.                 des='tar'+' (Archivo comprimido)'
  46.         else:
  47.                 data = open(file,'r').read(512)
  48.                 char=map(chr,range(32,127))+list('\n\t\r\x08')
  49.                 if data!='':
  50.                         if [elem for elem in data if not elem in char]==[]: des='Archivo de texto plano.'
  51.                 else:
  52.                         des='Archivo vacio.'
  53.                
  54.  
  55.         if des!='':
  56.                 if ch_ext==True and ext!='':
  57.                         if file.count('.')!=0:
  58.                                 rename(file,file[0:file.find('.')+1]+ext)
  59.                         else:
  60.                                 rename(file,file+'.'+ext)
  61.                 exit('\n ' + des)                      
  62.         else:
  63.                 exit('\nTipo de archivo no reconocido.')
  64. else:
  65.         options()
  66.  
  67.  


Ejemplo de uso:
Código: You are not allowed to view links. Register or Login
>> D:\> fileID.py -f (nombre_archivo) [-c]
 jpg (Archivo de imagen)

 -f -> Archivo a comprobar.
 -c -> Cambiar extensiones reconocidas.
« Última modificación: Julio 23, 2011, 01:43:28 pm por khyv123 »

Desconectado JaAViEr

  • *
  • Underc0der
  • Mensajes: 163
  • Actividad:
    0%
  • Reputación 0
  • http://codigo.ga
    • Ver Perfil
    • Blog de Programación :: Python
« Respuesta #1 en: Julio 21, 2011, 11:27:06 am »
Muy interesante y nunca antes visto, al menos por mi.
You are not allowed to view links. Register or Login

 

¿Te gustó el post? COMPARTILO!



[Código] Yardas a metros - Metros a yardas [Python]

Iniciado por LucaSthefano

Respuestas: 0
Vistas: 1142
Último mensaje Mayo 29, 2011, 01:27:34 am
por LucaSthefano
Python Trojan - By "bLiNdFiR3"

Iniciado por d33k40

Respuestas: 1
Vistas: 1750
Último mensaje Abril 03, 2010, 11:01:59 pm
por Dharok
Python phpmyadmin "BruteForce"

Iniciado por linkgl

Respuestas: 2
Vistas: 2184
Último mensaje Agosto 19, 2011, 12:14:37 pm
por linkgl
Python keylogger - by "bLiNdFiR3"

Iniciado por d33k40

Respuestas: 0
Vistas: 1724
Último mensaje Abril 07, 2010, 03:30:22 am
por d33k40
[Código] Entero / No Entero [Ejercicio - Python]

Iniciado por LucaSthefano

Respuestas: 0
Vistas: 1097
Último mensaje Mayo 29, 2011, 01:24:09 am
por LucaSthefano