1. 0

    Añadir un comentario

  2. Los primeros 8 bytes de un fichero PNG son siempre los mismos. En decimal, serían:


        137 80 78 71 13 10 26 10
    

    Para poder examinar esos 8 bits en linux/unix, podemos usar la utilidad head, y con hexdump podemos verlos en hexadecimal


        head --bytes=8 ejemplo.jpg | hexdump -C
    

    El resultado debería ser:


    00000000  89 50 4e 47 0d 0a 1a 0a                           |.PNG....|
    00000008
    

    Buscar archivos PNG con otra extensión


    El siguiente codigo en Python 3 localiza archivos de tipo PNG sin extensión o con una extensión que no sería la correcta:


        import os
        PNG_SIGNATURE = b'\x89\x50\x4e\x47\x0d\x0a\x1a\x0a'
    
        for (path, dirnames,filenames) in os.walk('/home/jileon'):
            for filename in filenames:
                full_name = os.path.join(path, filename)
                if os.access(full_name, os.R_OK):
                    with open(full_name, 'rb') as f:
                        head = f.read(8)
                        if head == PNG_SIGNATURE:
                            if not full_name.lower().endswith('.png'):
                                print(full_name)
    
    0

    Añadir un comentario

Archivo del blog
Etiquetas
Etiquetas
Enlaces interesantes
Cargando