Keygen en python:
def main():
base = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
alfaimpar = "AHyukjsdfkjsdfnPQU5xWERY67345aq9nFyR"
alfapar = "o3zYzaI1982Tv2FasgjkkjhkjlJt5Dpe32Ax"
nombre = raw_input("Ingresa tu nombre: ")
if nombre:
nombre = nombre.upper()
codigo1 = ""
DWSUM = 0
par = True
for car in nombre:
if car not in base:
print "El nombre solo puede contener letras y numeros!"
return
if par:
codigo1 += alfapar[base.find(car)]
else:
codigo1 += alfaimpar[base.find(car)]
par = not par
DWSUM += (((ord(car) ^ 1) * 1024) ^ 0xa4ed0f7) - 0x29a
serial = codigo1 + "-" + str(DWSUM)
if len(serial) > 24:
print "Nombre muy largo!"
return
print "serial: %s" % serial
if __name__ == '__main__':
main()
Notar que el keygen verifica que el nombre contenga sólo letras y números (cosa que el crackme no hace). Si quieren ver
cosas divertidas, corran el keygen con olly, pongan un BP en 401120 (la parte donde arma la primer parte del serial usando diccionarios) e ingresen caracteres como # ó % o cualquiera que no sean letras o números.
Saludos!
jeje para que sacar un keygen si podes saltearte a la ejecución del programa, después veo si puedo sacar un serial valido.
El crackme viene con reglas, las cuales deberías respetar. Por ser algo tan sencillo, el parcheo está descartado desde el inicio (Además ese no es el espíritu que queremos se propague por quienes aprenden aquí
)