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