Abr 10 2008

HackIt! Nivel 8: reverse engineering en Windows (solución)

Published by admin at 12:30 am under HackIt, Seguridad

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 0×0401290 (tocamos la línea y pulsamos F2). Pulsamos el botón Play (Run Program = F9) . En la línea 0×04012D4 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 0×04013AA 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 0×04013CD 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” ;-)

5 responses so far

5 Responses to “HackIt! Nivel 8: reverse engineering en Windows (solución)”

  1. Joseon 14 Abr 2008 at 1:34 pm

    Eres un campeon pero yo me he quedao igual que estaba

  2. adminon 14 Abr 2008 at 3:12 pm

    Jose: ¿qué es lo que no entiendes?

  3. Sergioon 15 Abr 2008 at 6:34 pm

    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

  4. xavier Salaon 04 May 2008 at 3:34 pm

    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,

  5. adminon 05 May 2008 at 7:44 am

    xavier: mi intención es publicar la solución al reto 9 esta misma semana.

Trackback URI | Comments RSS

Leave a Reply

« Back to text comment