miércoles, 20 de julio de 2011

WriteUp - 90sdancing - wgsbd2

Lo primero que tienes que hacer es leer la impresionante solución de Sherab Giovannini a este reto:


http://www.reversingcode.com/f1l3s/90sdancing.by.Sherab.Giovannini.zip

Una vez hecho eso, si su capacidad te desborda (como a mí), igual te interesa esta solución de andar por casa.


Nos proporcionan el binario crackme.exe. Analizando las cadenas de texto incluidas en el mismo enseguida vemos que es un ejecutable creado a partir de un script de python con py2exe.



>strings crackme.exe|grep -i py2exe
PY2EXE_VERBOSE
PY2EXE_VERBOSE
py2exe
C:\Python24\lib\site-packages\py2exe\boot_common.pyR
This file and also _memimporter.pyd is part of the py2exe package.

Buscando en Google un rato, localizamos un script que nos permite deshacer la conversión:


http://osdir.com/ml/python.py2exe/2007-11/msg00030.html

Como indican en la misma página, hay que ejecutarlo con la versión de python que se utilizó para generar el ejecutable, así que instalo en mi máquina python 2.4 y lo probamos:



>\Python24\python.exe exe2py.py crackme.exe
HEADER: 0x78563412 0 0 3039
ZipArchive:
Found code object: C:\Python24\lib\site-packages\py2exe\boot_common.py
Extracting to: boot_common.pyc
Found code object:
Disassembly:
1 0 LOAD_CONST 0 (None)
3 IMPORT_NAME 0 (zipextimporter)
6 STORE_NAME 0 (zipextimporter)
9 LOAD_NAME 0 (zipextimporter)
12 LOAD_ATTR 1 (install)
15 CALL_FUNCTION 0
18 POP_TOP
19 LOAD_CONST 0 (None)
22 RETURN_VALUE
Found code object: crackme.py
Extracting to: crackme.pyc

Perfecto, ya tenemos un script de python compilado, así que vamos a la web depython.net para obtener el código fuente:



Ya podemos ver claramente que pasando como parámetro "Captain hollywood" obtendremos el token que buscábamos: "find another way".

1 comentario:

  1. En este reto influyó bastante el factor psicológico yo creo, porque al ver la solución "para humanos" me pareció más sencillo que otros retos que pasamos. Como fue uno de los retos menos resueltos la gente lo intentó menos motivada. Buen solucionario!

    Saludos!

    ResponderEliminar