Ikasten.IO
Learning, Aprendiendo

HackIt! Nivel 8: reverse engineering en Windows (solución) 10 abril, 2008

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” 😉

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *