lunes, 6 de mayo de 2013

modificar el valor del HASH en un fichero binario

Cada vez que modificamos un fichero su HASH obtiene un valor distinto. Pero que ocurre si el fichero es un binario? pues exactamente lo mismo. Aquí tenéis un pequeño script donde podemos indicar el nombre de nuestro binario y nos crea uno nuevo con 100 caracteres aleatorios añadidos al final del mismo. Esto no altera el funcionamiento pero si el valor de su hash.
import sys,os,random

def bytes_aleatorio(n):
    return "".join(chr(random.randrange(0,256)) for i in xrange(n))

nombre=str(sys.argv[1])
fichero=open(nombre,'rb').read()
fichero_nuevo=fichero+bytes_aleatorio(100)
open(nombre+str("_new"),'wb').write(fichero_nuevo)
os.system("md5sum "+nombre)
os.system("md5sum "+nombre+"_new")
y su uso:
python modificarHash.py NombreFicheroBinario
y PUM!! el "mismo" fichero con un hash diferente.