Crackme | Ensamblador | Medio | Sin resolver |

En esta entrada voy a presentar un crackme de nivel 2 http://crackmes.de/users/fereter/crackme_by_fereter_1./

el objetivo es parchearlo para que acepte cualquier numero de serie, vamos a ver lo primero la gui

1

Vamos a abrirlo en el ollydbg y a buscar all referenced text strings, como siempre.

Y localizamos la linea donde dice correct numner

Si, el creador se ha equivocado y a puesto numner en vez de numBer xD

El caso es que nos manda a la direccion 004032A1

Vemos que en 0040328F tiene un salto JNZ hacia la direccion 004031D0, parte donde esta el mensaje de incorrect number. Osea si el serial introducido no coincide con el valido nos lleva a esa parte.

Ante esto se me ocurren cuatro opciones

-La primera sustituir ese salto condicional en 0040328F por un salto directo a la linea de correct numner.

-La segunda sustituir la direccion  a la que apunta ese salto condicional a la linea de correct numner, asi si el serial no es el que nos piden saltaremos a donde queremos.

-La tercera opcion que se me ocurre es dejar el salto como esta, y en la direccion a la que salta poner un JMP SHORT apuntando a la direccion 004032A1, osea a la zona de chico bueno

-La cuarta, que es la que voy a usar yo ya que es la solucion optima va ser poner un JMP SHORT apuntando a 004032A1.

Ahora vemos que en la direccion 0040328B hay un salto no condicional que nos volveria a mandar hacia arriba, y queremos ir abajo. Simplemente ponemos un breakpoint que es algo rapido .

Tambien hay un salto en la direccion 00403227, del tipo JNZ de nuevo que nos lleva a incorrect number, asique hacemos un JMP SHORT a la direccion donde tenemos el otro, osea a 0040328F

Hacemos lo mismo en 004031FE

Ahora nos fijamos en la direccion 004031DB, aqui el codigo, hace que si el serial es el valido se salta la parte de incorrect number, esto es un problema ya que si no lo cambiamos por un JNE nunca llegaremos al resto de partes, ademas vamos a hacer que este nuevo salto condicional apunte a la direccion 004031FE

 

2

Guardamos y probamos.