• Crackmes

 #194571  por CronuX
 19 Jun 2010, 22:11
Hola esta vez he terminado un pequeño CrackMe, y despues de pelear con el code un rato parece estar funcionando asi que lo posteo para que puedan resolverlo y como siempre practicar y aprender de él.

Reglas:
CTCrackMe_CronuX_2010

* No Romper el codigo
* No self-keygen
* No parchear
* Programar un keygen valido
* Explicar brevemente en que consistio el CrackMe
* Dar un comentario acerca de el CrackMe
* Sugerencias para proximos CrackMes
* Feliz Cracking
* Feliz Keygening
* Enviar por mp el Keygen Válido!

Saludos CronuX
GeoReverser!

CrackMe
Imagen

CrackMe Sin Pasar
Imagen

CrackMe Pasado
Imagen

Descarga
[ Debe registrarse para ver este enlace ]

User que lo han Pasado:
*
*
*


Saludos
Feliz Cracking
CronuX
 #247568  por linkgl
 28 Nov 2010, 03:57
Bueno se borró la conversación que tuve con peterPunk por aquí pero bueno, en fin he logrado sacar la rutina ahora ya SÉ como descifrar el serial gracias a PeterPunk que me dijo lo de la pila!. Bueno pero ahora me encuentro con otro problema, cómo podría sacar el serial sin usar fuerza bruta ya que hace tantas operaciones o más que operaciones usa muchas variables que la verdad no encuentro la fórmula o manera de sacar el serial con un programa, solo por fuerza bruta pero no quiero usar ese método verán si el user es linkgl(en cifrado cesar yvaxty) el programa hace:

Usuario cifrado * longitud del usuario(yvaxty * 6)=103E

Lo que me lleva a deducir que el serial es igual a:

103E XOR (Longitud_serial(serial) + 103E)

osea para los que no entienden el algebra

num=Longitud_serial * serial + 103E
EBX=103E XOR num

y toda la operación me tiene que terminar en 9F (BL)

Si pongo por ejemplo en el serial 765432 usando la formulita:
Serial=765432=13B
Longitud=6
Entonces
103E XOR (6(13B) + 103E)=EBX
103E XOR (762+103E)=EBX
103E XOR 17A0=EBX
79E=EBX
Entonces
BL=9E
Y para llegar a donde incrementa el eax y nos lleva al good boy necesita terminar BL=9F es lo más que me he acercado xD jeje alguna manera en la que alguien me explique como resolver el algorritmo en este caso? jeje ya descubrí como trabaja el crackme como encripta y como hacer para obtener el good boy a esta altura ya debería haber sacado el crackme así que felicidades cronuX tu crackme me ha hecho pensarle aver si me hechas una mano
 #247741  por PeterPunk
 28 Nov 2010, 16:59
Sí, la programación del Keygen en este caso es un poco engorrosa. No sé si CronuX lo tuvo en cuenta cuando programó el crackme.
Aquí te subo los keygenes que le envié a CronuX en su momento. Son 4 keygenes, dependiendo de los caracteres con los que te devuelve una clave válida. Por ejemplo el de longitud 3 (el primero que hice) te puede dar caracteres desde el "0" (byte 48) hasta la "z" (byte 122), sin embargo el de longitud 29 sólo te devuelve números. También te va el código fuente de la versión de 3 caracteres (está en MASM32)
[ Debe registrarse para ver este enlace ]

Saludos.
 #247763  por linkgl
 28 Nov 2010, 18:25
Oh ya veo lo que hiciste xD eliminar una variable (la longitud del serial) y hacer keygens con una longitud determinada(3,7,29) etc, bueno programaré mi keygen así como mencionas entonces gracias xD y cronuX voy por tus otros crackme's xD y el tuyo Peter No se me olvida (Dionisio's) xD salu2

Y pues ya el serial de linkgl con 7 digitos y puros números(Para evitar el cifrado cesar) es:
8151210

Y bueno muy buena la rutina me confundió bastante eso de los RET y aun así cuando saqué la rutina me costo demasiado descifrar el serial pero creo que ya voy agarrando vuelo en esta area de la ingeniería inversa, gracias PeterPunk por tu ayuda ;)
 #247771  por PeterPunk
 28 Nov 2010, 18:44
linkgl escribió:Oh ya veo lo que hiciste xD eliminar una variable (la longitud del serial) y hacer keygens con una longitud determinada(3,7,29) etc, bueno programaré mi keygen así como mencionas entonces gracias xD
Sí, claro, lo que hice fue probar que con los caracteres imprimibles hubiera solución para todos los posibles casos. Así que me salió un tamaño mínimo de 3 caracteres.
Luego fui aumentando el tamaño del serial para ir reduciendo los caracteres de salida, para evitar que para PeterPunk me salieran resultados como "R]j", "]_]" o "%mm".

Saludos.