Hace unos días había dejado a medias un crackme. Habíamos resuelto la primera de las tres fases que tenía, hoy intentaré terminarlo. Si no has leído la primera parte, este sería un buen momento para leerla ;-)
Una vez superada la primera fase, se nos preguntaba un nombre y un número de serie. Si lo inspeccionamos con el IDA y buscamos la referencia al texto “STAGE 2” veremos que muy cerca hay un salto “ja” a la zona del código que muestra el texto de “Stage 2 Completed”:
La idea es, tal y como hemos visto en la primera parte, reemplazarlo por un JMP. No obstante, esto no servirá pues, un poco más abajo, se ve un salto a la zona que indica que es incorrecto. ¿Solución? Lo noopeamos. Así pues los cambios quedarían:
Realizamos los cambios con Hex Workshop, lo guardamos como “CrackMe#5.exe”, lo probamos y:
Perfecto, ahora nos queda eliminar esa línea de texto y la necesidad de pulsar intro. Abrimos el #5 con IDA y seguimos el código desde donde lo habíamos dejado. Vemos la línea de texto y después una llamada a printf y otra a _getch. La primera muestra el texto por pantalla, la segunda espera a que se pulse una tecla. Una de las opciones es noopear ambas instrucciones, es decir, realizar los siguientes cambios:
Hacemos los cambios con Hex Workshop, guardamos como “CrackMe#6.exe”, lo probamos y: