Solución examen 2 con ollydbg

27
CRACKEO BÁSICO INGENIERÍA INVERSA Solución de Examen 2 Ollydbg

description

Solución examen 2 con ollydbg

Transcript of Solución examen 2 con ollydbg

Page 1: Solución examen 2 con ollydbg

CRACKEO BÁSICO INGENIERÍA INVERSASolución de Examen 2

Ollydbg

Page 2: Solución examen 2 con ollydbg

Bien, para hacer este tipo de crackeo hay varios tipos de programas, como

por ejemplo: OLLYDBG, W32DSM, INMMUNITY DEBUGGER, utilizaremos

OLLYDBG, ya que lo considero sencillo, pero debes de saber que en el caso

de OLLYDBG, el proceso es el mismo, bien, una vez ya tenemos nuestro

programa para debuggear(desensamblar) y nuestro crackme (programa

para crackear) comenzamos con la operación.

Page 3: Solución examen 2 con ollydbg

Ejecutamos el crackme y nos aparecerá lo siguiente

Page 4: Solución examen 2 con ollydbg

Recordemos que los programas son conjuntos de operaciones aritméticas que se

ejecutan sobre la memoria.

A estas operaciones se acceden mediante una serie de saltos (ya sean

condicionales o incondicionales).

Si lo que quiero es obtener una salida distinta a la habitual, lo que debo hacer es

modificar el algoritmo, forzando una serie de saltos concretos. (Estudiando las

operaciones aritméticas y saltos que realiza la aplicación)

Tenemos una aplicación que parece contener una contraseña, pero no está

autorizada a mostrárnosla.

Page 5: Solución examen 2 con ollydbg

Abrimos la aplicación con Ollydbg y buscamos cadenas legibles, con el fin

de poder situarnos en el flujo que contiene la condición que nos niega

darnos la contraseña

Page 6: Solución examen 2 con ollydbg
Page 7: Solución examen 2 con ollydbg
Page 8: Solución examen 2 con ollydbg
Page 9: Solución examen 2 con ollydbg

Podemos ver la parte que devuelve la contraseña, pero esta enmascarada,

así que no aparece directamente, si no que en el momento de ejecución

cada %c, será sustituido por valores char.

Page 10: Solución examen 2 con ollydbg
Page 11: Solución examen 2 con ollydbg

Pulsamos doble clic sobre el y nos mandará a esa parte, además si nos

situamos sobre el “No puedo darte la clave”, y se desplegará una flecha,

que nos indicará desde que salto proviene la instrucción.

Page 12: Solución examen 2 con ollydbg
Page 13: Solución examen 2 con ollydbg

Nos posicionamos en el origen y vemos que pone JE, que significa “salta si

es equivalente”, entonces entendemos que hay una condición que esta

impidiendo que la aplicación nos de la contraseña.

Por lo tanto vamos a modificar JE por su antónimo: JNE, que significa “salta

si no es equivalente”.

Hacemos doble clic sobre el, lo modificamos y pulsamos Assemble:

Page 14: Solución examen 2 con ollydbg
Page 15: Solución examen 2 con ollydbg
Page 16: Solución examen 2 con ollydbg
Page 17: Solución examen 2 con ollydbg

Ahora que ya hemos modificado el algoritmo de la aplicación, pasamos a

probarlo: Pulsamos en Debug > Run (O directamente pulsamos F9)

Page 18: Solución examen 2 con ollydbg
Page 19: Solución examen 2 con ollydbg

Si deseamos guardar nuestro resultado hacemos el siguiente

procedimiento y no vez que modificamos el salto de equivalencia por uno

no equivalente seleccionamos el código que se muestra en la imagen y le

damos clic con el botón derecho y seleccionamos edit y copy to executable

Page 20: Solución examen 2 con ollydbg
Page 21: Solución examen 2 con ollydbg

Posteriormente nos aparecerá la siguiente ventana

Page 22: Solución examen 2 con ollydbg
Page 23: Solución examen 2 con ollydbg

En esa ventana le damos clic con el botón derecho del mouse y le damos

save file

Page 24: Solución examen 2 con ollydbg
Page 25: Solución examen 2 con ollydbg

Una vez salvado probamos nuestro archivo creado para comprobar que

realmente funciona de manera adecuada, en mi caso ejecuto crackme ok

Page 26: Solución examen 2 con ollydbg
Page 27: Solución examen 2 con ollydbg