Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: Mad Antrax en 16 Enero 2013, 22:57 pm



Título: Crackme v2 (6 en 1) Intenta resolverlos todos
Publicado por: Mad Antrax en 16 Enero 2013, 22:57 pm
Bueno, os dejo mi segundo y último crackme por el momento. En realidad son 6 crackme's en 1, tendréis que resolverlos uno por uno a modo de prueba.

Dificultad (4/10) sencillo

Prueba 1: Nag Screen

(http://i.imgur.com/ZjxTv.png)

No es necesario resolver la nag, el crackme te deja continuar pasados unos segundos. Tu decides en parchear o no, pero si lo haces demostrarás tus dotes de cracker.

Prueba 2: Enable it

(http://i.imgur.com/WP2mW.png)

El botón que te permite pasar a la siguiente prueba está deshabilitado, encuentra la función/API que lo activa para continuar.

Prueba 3: Serial it

(http://i.imgur.com/MIKHs.png)

El típico serialme, hay 3 versiones de éste tipo de crackme en el programa, aquí el nivel es MUY sencillito

Prueba 4: Serial it v2

(http://i.imgur.com/fuN0Z.png)

Similar al anterior, se han suprimido los mensajes de alerta para añadir algo de dificultad.

Prueba 5: serial it v3

(http://i.imgur.com/0nPV8.png)

Última prueba del tipo 'serialme', dificultad añadida. Pero sigue siendo fácil

Prueba 6 final: Code inyect

(http://i.imgur.com/YMBkj.png)

Prueba final, aquí solo aceptaré una forma de solventar el crackme. El programa te quita "vida" cada vez que golpeas. Tienes que modificar el programa para que tu vida aumente en lugar de disminuir. Soy conciente que puedes parchear el salto condicional, pero lo que pido es que la vida aumente.



Consideraré el crackme resuelto si superas las pruebas 2,3,4,5 y 6. Teniendo en cuenta que en la prueba 6 NO se puede parchear el salto condicional, tendrás que modificar el código y hacer que la vida aumente.

Si además, resuelves la prueba 1, te ganarás mi respeto y lo haré constar en éste hilo :D

DESCARGAR: http://www.mediafire.com/?xsei66uiqxb74ek


Título: Re: Crackme v2 (6 en 1) Intenta resolverlos todos
Publicado por: MCKSys Argentina en 17 Enero 2013, 04:29 am
Perdón, pero no me pude contener:

Código:
1) Sacar nag

Cambiar byte de orden de Form (en GUITable)

Intercambiar bytes en offset 17C4h por byte en offset 1814h

2) Enable it

El boton no tiene definida la propiedad enabled en la GUITable. Se le asigna por código.
Hay 2 opciones para activar el boton:
a) Hacer que Enabled reciba TRUE en vez de FALSE.
b) Parchar el form_load para que no se ejecute nada (la propiedad Enabled por default es TRUE)

Por la forma en que está el código, es más sencillo hacer b.

Se ensambla en 405730 un RET (Byte en offset 5730 se pone en C3h)

3) Serial it

Para hallar el serial, ponemos un BP en 405902 (MSVBVM60.__vbaStrCmp), ingresamos un serial y damos "Hit".
Cuando para, vemos que nuestro serial se compara con "melocotón" (sin comillas).

NOTA: En Olly v1.10 no muestra el string en el stack (al menos no ahora :) ) porque tiene problemas para reconocer la "ó" como caracter válido. Basta con hacer "Follow in dump" del valor de ESP y listo.

4) Serial it v2

Igual que antes, ponemos un BP en 405CBA (MSVBVM60.__vbaStrCmp), ingresamos serial y damos "Hit".
Vemos que ESP apunta al string "madantrax " (sin comillas).

5) Serial it v3

Igual que antes, ponemos un BP en 405FE8 (MSVBVM60.__vbaStrCmp), copiamos un serial en el portapapeles (o Clipboard como les guste XD ) y cuando pegamos salta el BP.
Vemos que ESP apunta al string "Nag Screen" (sin comillas).

NOTA: Este string es el Caption de la Nag Screen.

6) Code inyect

Para hacer que sume en vez de restar, cambiamos el "SUB DX, 5" de 4061A7 por un "ADD DX, 5".
Osea cambiar el byte en offset 61A9h a C2h.


Título: Re: Crackme v2 (6 en 1) Intenta resolverlos todos
Publicado por: Mad Antrax en 17 Enero 2013, 08:29 am
Completamente correcto, has resuelto todas las pruebas! :P


Título: Re: Crackme v2 (6 en 1) Intenta resolverlos todos
Publicado por: Karcrack en 17 Enero 2013, 18:39 pm
@MCKSys Argentina: ;-) ;-) Eres una inspiración :laugh: Con el asco que me da analizar ejecutables en VB6 y parece que no te haya costado nada :xD

Por cierto, las modificaciones en las estructuras de VB6 las haces manualmente o utilizas alguna herramienta?


Título: Re: Crackme v2 (6 en 1) Intenta resolverlos todos
Publicado por: MCKSys Argentina en 17 Enero 2013, 21:29 pm
Hace un tiempo atras empece un script para ollyscript, el cual reconoce las estructuras internas de VB 5/6.

La base salio de otro script que rondaba la web en esos tiempos mas este (para IDA): http://www.hex-rays.com/products/ida/support/freefiles/vb.idc (http://www.hex-rays.com/products/ida/support/freefiles/vb.idc)

Aunque no esta completo, me permite encontrar las cosas rapido, como la GUITable, los ObjectInformation y demas.

Saludos!