Si hacemos lo que vimos en el post anterior, veremos la siguiente cadena: «Compressed by Petite (c)1999 Ian Luck»
Así que ahora que sabemos el compresor usado en el .exe, habrá que descomprimirlo. La primera pega, sacada del readme de Petite: «No existe un descompresor de Petite.» Genial… vamos a preguntar al sabio a ver si opina lo contrario. Entre los resultados, uno curioso: «r!sc’s Petite enlarger» (alargador de petite) 🙂 Tras ejecutar enlarger.exe sobre login.exe vemos que tenemos éxito 🙂
Se genera en la misma carpeta de login.exe un nuevo binario descomprimido de nombre un-packed.exe . Ése será el ejecutable que abriremos con OllyDBG, y ahora sí, estaremos en disposición de depurarlo:
Pondremos un punto de ruptura en la dirección 0x0401290 (tocamos la línea y pulsamos F2). Pulsamos el botón Play (Run Program = F9) . En la línea 0x04012D4 vemos que se intenta leer el fichero license.lic (en concreto los campos user y login). Antes de seguir depurando, por tanto, vamos a cumplimentar esos campos (el user lo dejamos tal cual está en el fichero original, «euskal15», y en el password pondremos «contraseña», por ejemplo).
Seguimos depurando paso a paso pulsando F7 (ejecutar paso a paso, metiéndose en el código de las funciones – destino de los call – ) ó F8 (ejecutar paso a paso, pero NO meterse en el código de las funciones – no meterse en el destino de los call – ) .
Cuando lleguemos a la instrucción 0x04013AA debemos fijarnos en la zona superior derecha, en el valor de los registros EAX, ECX, etc. Veremos la cadena HACKthis (podemos empezar de cero, probando a poner esa cadena en el password y ejecutar el .exe. Veremos que no es la contraseña que necesitamos) Seguimos ejecutando paso a paso, hasta que al llegar en una de las vueltas a la instrucción 0x04013CD veremos lo siguiente:
«HFODdget» … qué cadena más curiosa, ¿no? 😉 No voy a explicar exactamente qué hace cada región de código ensamblador, eso lo dejo «como ejercicio para el lector» 😉
Eres un campeon pero yo me he quedao igual que estaba
Jose: ¿qué es lo que no entiendes?
Impresionante! Yo tampoco me entero mucho, pero me parece muy interesante el tema de la ingeniería inversa. Por lo menos me he enterado de que existe algo llamado OllyDBG
Acabo de descubrir que estas resolviendo las pruebas del Hackit! Me han parecido muy interesantes las soluciones que explicas (en alguna yo había usado otro enfoque)
A ver si nos das unas pistas del nivel 9 que el zip se me ha atragantado… Suerte que al poder bajar el tar.gz no me he quedado encallado y he podido resolver alguna de las posteriores.
Saludos,
xavier: mi intención es publicar la solución al reto 9 esta misma semana.