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:
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
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.
Nos quedaria asi, guardamos las modificaciones y verificamos.
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
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
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
Reto superado, hasta la proxima!
El enunciado decía crear un keygen, no parchear.
Me gustaMe gusta
Hola,
Podrás postear los crackmes? Por el momento el sitio crackmes.de no está disponible.
Gracias
Me gustaMe gusta