Curso de Cracking - Cómo crackear el mismo Crackme

4 - Cómo crackear el mismo Crackme

[editar]
Curso gratis creado por JaMaikito. Extraido de: http://www.indaya.com
21 de Febrero de 2006
En este capítulo veremos como crackear el mismo Crackme, pero si no pudiésemos ver las string references, es decir, imagínense que cuando lo desensamblamos con el wdasm o miramos las referencias de texto en el OllyDBG y no encontramos nada, qué hacemos?. Bueno para resolver esta preguntra, aclararemos lo siguiente, además de poder situar lo Breakpoint en ciertos lugares del programa como hemos hecho en el capítulo anterior, existen las llamadas funciones API, que son funciones que existen en Windows y el programa utiliza para no escribir funciones que ya puede utilizar tomándolas de otro lado.

La idea será utilizar estas funciones para que nos guíen a la zona deseada, para poder encontrar el salto condicional que deseamos cambiar. En este caso la función API que utilizaremos es una llamada MESSAGEBOXA , que es la que dibuja las ventanitas con mensajes, así que pensaremos que si podemos ubicar cuando el programa llama a esta función para dibujarnos la ventanita de NO LUCK THERE MATE, podremos ubicar desde donde se realiza la comparación, ya que antes de dibujarla checkeará si nuestro serial es correcto.

Dicho esto, ponemos manos a la obra. Como siempre lo primero que haremos será irnos a nuestro querido OllyDBG, y desensamblaremos el Crackme. Hecho esto le daremos a F9 (para que corra el debugeador y se ejecute el programa), y luego haremos click derecho sobre el programa desensamblado e iremos a SEARCH FOR--->Name (label) in current module, o simplemente pulsaremos CTRL+N, lo que es equivalente y obtendremos algo como lo siguiente.



Bueno aquí estamos delante de los módulos que se utilizan. Lo que haremos será localizar el que nos interesa MESSAGEBOXA. Aquí veremos una diferencia, mientras que con el Softice bastará poner BPX MESSAGEBOXA, para poner un breakpoint en la función, aquí lo que haremos será seguirla para ver desde donde se utiliza, ya que con un Breakpoint no llegaremos a nada :) .

Entonces lo siguiente, ubicada la función nos situaremos sobre ella y le daremos al botón derecho del mouse, y lo que nos ocupa a nosotros es ver desde qué lugares es llamada, así que iremos a la opción FIND REFERENCES TO IMPORT y allí nos salen 4 direcciones 40135C, 401378, 4013BC, 40143A .

Si hacemos doble click sobre la primera (para que nos lleve al programa desensamblado, a la posición desde donde se llama) veremos que se trata de la ventana de que hemos ingresado el serial correcto, es claro que esta no nos interesa, ya que si ingresamos el serial incorrecto no utilizará dicho mensaje :p .

Así que seguimos, si hacemos doble click sobre el segundo y el tercero, veremos que ambos hacen referencia a la ventanita de error, mmmmm... por aquí debe ser el asunto. Pero miro y digo "son dos", algo no está bien, y es allí donde usando la memoria me acuerdo que ya en el capítulo anterior, el programa me había engañado llevándome por un camino falso, así que procederé con cautela.

Hago doble click sobre la que se llama desde 401378 y debajo de la posición en la que me arroja, hay un RETN (return, es decir que utiliza la función y me devuelve mediante esa orden, debajo de la posición desde la cual fue llamada para dibujar la ventana), así que pondremos con F2 un Breakpoint en ese RETN, he intento registrarme, esta vez lo hemos pillado, ya que el programa nos arroja el error inmediatamente luego de intentar registrarnos, lo que nos está diciendo que nuestro Breakpoint no ha detenido el programa, por lo que el programa no utiliza la zona donde pusimos con F2 el Break, por lo tanto este es el mensaje de error que nos había engañado en el capítulo pasado.

Así que sabiendo esto hacemos doble click sobre 4013BC, e igual que con el anterior vemos que debajo de donde nos arroja, hay un RETN, al que le pondremos un Breakpoint , y luego intentaremos registrarnos.

En esta ocasión el programa se ha detenido ;), así que le daremos a F8 para que nos devuelva, y nos arroja sobre la posición 401232, hasta aquí vamos bien pero, mmmm.... este lugar me resulta familiar,aaaaaa....como no? si no es más ni menos que donde la otra vez habíamos hallado el salto a modificar la última vez jajaja ;), si miramos 5 y 6 órdenes hacia abajo respectivamente veremos la comparación y el salto, modificaremos el salto igual que la vez anterior posicionándonos sobre él , le damos a la barra espaciadora, para que nos lleve a la opción Assemble y allí modificamos el salto JE por un JNE, y ... BINGO , lo hemos logrado una vez más y no hemos precisado las referencias de texto ;).

Escríbanme para decirles si les ha gustado, cualquier duda o sugerencia.
[editar]

38 opiniones

Exelente curso

Este curso es muy bueno gracias por compartirlo
Va bien el curso.

Me parece bien el curso por que viene a prueba de todo... Excelente tutorial y felicitaciones ya estoy desarmando cualquier programa que encuentre por ahi ;).
Necesito descargarme el curso. ¿como lo hago?.

Es un buen curso, pero lo necesito para estudiarlo y provarlo en un pc sin conexion. Me podrias enviar por email algun link?.
Muy bueno.

Hola, este curso está muy bien para aquellos que se inician en la ingeniería inversa. Solamente tengo una observación, en el curso (lección 3 y 4) se habla de un messagebox que está ahí para despistarnos. Creo que no es así ya que si al registrarnos escribimos por ejemplo un '5' en name y aceptar, aparece el messagebox que se maneja en el curso como de despiste.
Ótimo site.

Queria saber eficiente uma forma eficiente como descobrir senhas de orkut e msn sei que vocês sabem tudo sobre isso um abraço e parabens pelo trabalho.
1 2 3 4 5 6 7 ... 8 | siguiente >

Cursos gratis relacionados con 'Curso de Cracking'

La ingeniería inversa se basa en quitar, remover, suspender uno o más temas de protección... Más »
Completo curso acerca de los virus informáticos, historia, clasificación, protección...

Autor y licencia de 'Curso de Cracking'


Curso gratis de JaMaikito. Extraido de: http://www.indaya.com CopyLeft
Licencia GNU Free Documentation License: http://www.gnu.org/copyleft/fdl.html
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.