4N006135 Crackme | Ensamblador | 4 niveles |

En esta ocasion voy a resolver un pack de crackmes. Se dividen en

nivel 0 facil

nivel 1 facil

nivel 2 medio

nivel 3 dificil

En todos vamos a parchear, por tanto solo necesitamos el ollydbg y algo de logica.

Empezamos con el

NIVEL 0

Simplemente nos pide una contraseña, vamos a parchearlo de tal modo que acepte cualquier contraseña como valida

Para empezar lo abrimos en el ollydbg y boton derecho ->  search for -> all referenced text strings

Doble click sobre la linea que contiene el mensaje «nope, try»

Nos lleva a la direccion 0040142A, esa es la zona que nos da el mensaje erroneo, y vemos que llegamos ahi tras un salto condicional JNE (JNZ) que lo que hace es saltar a la parte de error si la contraseña no es equivalente, simplemente sustituimos por JE.

Copiamos todas las modificaciones al ejecutable y testeamos:

level0

NIVEL 1

En esta ocasion nos pide un nombre de usuario y de contraseña, de nuevo no generaremos un keygen sino que parchearemos para que acepte cualquier cosa como valida.

Para empezar lo abrimos en el ollydbg y boton derecho ->  search for -> all referenced text strings

Buscamos el mensaje de error «nope, try again»

Nos lleva a la direccion 00401454

lvl21

Esta es la seccion de codigo que nos interesa, vamos a ver que hace exactamente

Ponemos un breakpoint en la direccion 0040143C para quitarnos de en medio ese bucle.

Debajo nos encontramos con la instruccion JNZ que nos dice que si los datos no son equivalentes salte al mensaje de «nope, try again». Vamos a ver otro metodo para parchear este procedimiento, para ello necesitamos la direccion del mensaje de good job = 00401446

Ahora lo que vamos a hacer es que cuando fallemos el serial y por tanto nos salte a la parte de nope, try again, poner ahi un jump a la parte de good job. LVL22

Nos quedaria asi, guardamos las modificaciones y verificamos.

level1

Listo

NIVEL 2

En este nivel nos pide un usuario y contraseña, el usuario ya viene rellenado, vamos a parchear para que valga cualquier contraseña.

Para empezar lo abrimos en el ollydbg y boton derecho ->  search for -> all referenced text strings

Buscamos el mensaje de error «nope, try again»

Nos manda a la direccion 004014AC 

lvl31

Vemos que hay un bucle en la direccion 00401464

Ponemos un breakpoint ahi para que se lo salte

Ahora analizamos la estructura del otro procedimiento

0040148F |> 803E 00 /CMP BYTE PTR DS:[ESI],0
00401492 |. 74 0A |JE SHORT level-2.0040149E
00401494 |. 8A06 |MOV AL,BYTE PTR DS:[ESI]
00401496 |. 3A07 |CMP AL,BYTE PTR DS:[EDI]
00401498 |. 75 12 |JNZ SHORT level-2.004014AC
0040149A |. 46 |INC ESI
0040149B |. 47 |INC EDI
0040149C |.^EB F1 \JMP SHORT level-2.0040148F salta siempre al principio

Como en este procedimiento lo que hace es slatar siempre a la primera linea podriamos hacer dos cosas, la primera cambiar la direccion del JMP a la direccion donde se encuentra el mensaje de buen trabajo, o cambiar la primera linea y sustituirla por un JMP que apunte hacia la direccion de buen trabajo, haremos la segunda.

La direccion de buen trabajo es 0040149E 

Asi que sustituyendo JMP SHORT level-2.0040148F por JMP SHORT level-2.0040149E    

O sustituyendo  CMP BYTE PTR DS:[ESI],0  por JMP SHORT level-2.0040149E    

Tendriamos resuleto este crackme, si usamos el segundo metodo quedaria asi

level2

Solucionado

**El keygen lo dejaremos para otra ocasion

NIVEL 3

En este nivel nos pide usuario.

Para empezar lo abrimos en el ollydbg y boton derecho ->  search for -> all referenced text strings

Buscamos la del mensaje de error como siempre y nos devuelve a la direccion 004014A9

Pero vemos que hay dos, vamos a examinar primero el que tenemos marcado.

Vemos que esa direccion es llamada desde los saltos  0040142C, 00401438, 00401445, 0040144F, 0040145C, 0040146E, 00401497

Vamos a buscar el primero, lo localizamos y vemos que un poco mas arriba en la direccion 0040141C hay un salto que apunta justamente al otro mensaje de error, la logica nos dice que si saltamos desde esta direccion a la direccion 00401499 que asu vez salta a la zona de good job habremos solucionado el crack me, lo hacemos y ya tendremos solucionado el reto 

LEVEL3

Reto superado, hasta la proxima!

2 comentarios en “4N006135 Crackme | Ensamblador | 4 niveles |

Deja un comentario