Professional Documents
Culture Documents
Hola, empezaremos este tutorial aclarando que la técnica usada funciona tanto en VB5 como en VB6,
personalmente no me gustan los programas en VB, Crackearlos Obviamente, pero si me agradan en general,
además hoy en día existen gran cantidad de programas hechos con este lenguaje de programación, y no hay
muchas técnicas que ayuden a crackearlos, también decir que prefiero el Visual Basic 6.0.
Veremos como OllyDbg es más poderoso de lo que imaginamos si sabemos utilizarlo correctamente y como
crackear Programas en VB será más placentero.
Lo que intento en este tutorial es aportar un granito de arena más (y de ayuda) a la hora de toparnos con este
lenguaje tan curioso.
Lo único que me queda por decir es que si alguien quiere corregir, aumentar, o quitar algo de este tuto, que lo
haga, en ningún momento se pretende que sea una guía cerrada sino todo lo contrario. J
Empecemos:
UN POCO DE TEORIA:
Bueno, los programas en Visual Basic como sabrán trabajan de una manera diferente a los demás programas
¿Porqué digo “Diferente”? porque utilizan constantemente unas librerías externas, llamadas MSVBVM50.DLL
en Visual Basic 5.0 y MSVBVM60.DLL para la versión 6.0. Estas librerías son las encargadas de “traducir” el
código del programa (por ejemplo las APIs).
Bueno, lo interesante es que cuando desensamblamos un programa hecho en VB por primera vez seguramente
no entenderemos una #$%&@ de lo que vemos y esto es normal, demás está decir que necesitaremos nuevas
técnicas de cracking y hasta la ayuda de otros programas para salir victoriosos, ¿Quién no conoce a Smart
Check? ;)
En los programas hechos en Visual, se utilizan generalmente los registros: EAX, ECX, y EDX.
Bueno, lo que haremos es “Cazar” literalmente los movimientos de memoria permitiéndonos entrar en el
código en el momento en que nuestros datos son preparados para ser manipulados, ósea, justo donde queremos.
;)
LA PALABRA MAGICA:
CALL [EAX+000000A0]
CALL [EDX+000000A0]
CALL [ECX+000000A4]
Nota:
Dependiendo del tipo y cantidad de llamadas a la DLL variará entre un registro y otro.
También de las APIs utilizadas por el programa.
Bueno, primero que todo miramos un poco, vamos al menú HELP y seleccionamos REGISTER, completamos
los datos:
Presionamos OK y
Que hacemos???
Bueno, hay un pequeño truco que nos permite romper (detener la ejecución del programa), justo cuando se
estén preparando los datos para ser manipulados. O sea, detener el programa cuando lea los datos que
introducimos. ;)
Veamos…
En la primera línea del desensamblado hacemos CLIC DERECHO - SEARCH FOR - COMMAND.
Y en la ventanita tipeamos la palabra mágica:
CALL [EAX+000000A0]
Si continuamos buscando “CALL [EAX+000000A0]” (CTRL+L) encontraremos mas referencias pero no nos
servirán, solo la primera que encuentre el Olly, recordar, solo la primera vez que Olly se detenga en la
búsqueda es la que nos interesa.
Ahora presionamos F9 (RUN), completamos los datos y presionamos OK, OllyDbg se detendrá en el BPx
Si trazamos unas pocas líneas podemos ver como se toma el serial que pusimos:
Trazamos hasta:
Bueno, espero que puedan utilizarlo, si alguien se anima a hacer un tutorial donde se utilice la técnica, seria
bueno para poder ejemplificar mejor lo aprendido.
Olly se detiene, ponemos un BPx, damos F9 (RUN), completamos con cualquier número y presionamos
REGISTER
Olly se detiene en el BPx, trazamos unas líneas mas abajo y vemos:
Coco.
co2_cracker@hotmail.com