Nada más ejecutar el
programa, nos aparece una ventana donde podemos elegir
registrarnos o entrar al programa en modo demostración.Elegimos registrarnos, que es lo que nos
interesa.
Nos abre otra ventana 'Asistente de registro', y nos pide
los siguientes datos:
- Nombre
- Empresa
- CIF
Introducimos cualquier cosa y
continuamos (no tiene ninguna importancia lo que
pongamos... incluso podemos no poner nada).
Ahora nos aparece otra ventana con más opciones, esta si
que es importante, porque aquí le diremos al programa
que versión es la que vamos a comprar (estandar,
profesional, enterprise) y según eso nos dejará poner
unos módulos u otros.
El número de serie no tiene
importancia... ponemos cualquier cosa. p. ej 'xasx'.
Elegiremos la versión Enterprise,
mejor que sobre que no que falte ;), todos los módulos
se seleccionan automaticamente y vamos a poner también
alguna licencia de red más... por ejemplo 900 xD. (el
máximo son 999).
Ok, ahora con todo esto hecho,
pulsamos siguiente y aparece un codigo de este estilo:
6921-59610/3*33311111-900
^^^^^^^ ^ ^^^^^^ ^^^
código variable
-- est/pro/ent ----- módulos -- nº licencias de
red.
Bueno, ya tenemos el código.
Ahora se supone que tenemos que comunicar por fax o por
teléfono este código a 'Soft for you', y despues de
haber ingresado la pasta correspondiente a la versión
que hallamos elegido, se nos dará un contra-código que
introducimos en la siguiente ventana.
Ya estamos en la ventana donde hay
que introducir el 'contra-código'.
Aquí es donde empieza realmente
el cracking.
En
Busca del 'contra-código' |
Introducimos un
número al azar, y nos dice: ¡Lo Siento!, el
contracódigo introducido está mal.
¿Porqué se disculpa?, acaso es un juego... parece que
sí. xD.
Vamos a buscar el código del
programa que llama a esta ventana.
ohhh, W32DASM parece que no funciona muy bien con este
programa... WINGEST.EXE ocupa 10,4 Mb de 'basurilla'
programada con VisualFoxPro 6.0.
Parece que tendremos que utilizar
SoftIce... más divertido todavia, xD.
Despues de probar bastantes
breakpoints sin éxito (típicos getdlgitemtext(a),
getwindowtext(a)... etc etc), me doy cuenta que es un
programa hecho en Visual Fox Pro 6.0, por lo que
utilizará una libreria propia al estilo de Visual Basic.
Asi es: VFP6R.DLL / Microsoft®
Visual FoxPro® Runtime Library.
Ya estamos a punto de meternos a
probar apis propias de esta libreria (bastante poco
conocida en el cracking), pero antes de entrar de
lleno... ¿porque no vamos primero a lo facil y hechamos
un vistazo en la memoria por si acaso entre comparación
y comparación se ha quedado algún numero interesante
por hay?
El comando para
buscar con SoftIce es:
S = Search
S 0 l ffffffff ´lo que quieras buscar´
La busqueda la realizaremos
despues de haber introducido un contra-código y pulsado
|siguiente|, porque ya se habrán hecho todas las
comparaciones en memoria y podremos encontrar algún
resto.
Recordamos que nuestro código
era: 6921-59610/3*33311111-900
(la primera parte es distinta cada vez).
El mejor string para
buscar que se me ocurre es: 3*33311111-900 : la parte
final del código que nos da el programa y solo varía
con los datos de registro.
Entramos en softice
(ctrl+d):
Utilizamos la función de buscar...: s 0 l ffffffff
´3*33311111-900´
y vamos pulsando <s> varias veces hasta que
llegamos a algún lugar interesante.
Despues de pulsar
<s> unas 15 veces (pueden ser + o -), llegamos a un
sitio, donde vemos lo siguiente:
<<número desconocido 5
caracteres>>............610/3*33311111-900..................<<nuestro
contra-código>>.
(para movernos en la
ventana de datos del softice, hay que pulsar alt+flecha
arriba/abajo)
hmmmmmmmm..... que hacen
hay esos números tan juntos?... apuntaremos el nº de 5
caracteres en un papel y vamos otra vez al Wingest.
Pulsamos en el botón |anterior| y volvemos a entrar a
softice (ctrl+d),
hmmmmmmmmmmm..... el nº
ya no está... y en su lugar pone: "enrerant".
vamos a probar a escribir el 'nº desconocido' que
tenemos apuntado en la casilla de contra-código, a ver
si por casualidad....
xDDDD... Felicidades, ya
tiene Wingest registrado, le deseamos un buen día.
Bueno, parece que ha
funcionado... y no nos hemos tenido que meter a tracear
en el oscuro mundo de VFP6R.DLL
/ Microsoft® Visual FoxPro® Runtime Library.
Pulsamos finalizar y el programa
carga normalmente, sin la palabra demostración en la
ventana de inicio...
Cerramos el Wingest y le volvemos a abrir. hmm carga
correctamente y ya no sale ninguna ventana para que nos
registremos, además funcionan todos los módulos y no
hay restrinciones, ni caduca.
Lo hemos conseguido!!!!!!,
Ahora buscamos donde se guarda la
información de que está registrado:
Lo puede hacer en varios lugares:
Registro del Windows -> Comprobamos con 'regmon' si
accede a alguna cadena propia. NO.
Fichero .ini -> Comprobamos con 'filemon' los ficheros
.ini que consulta al cargar.
Otro fichero propio -> Parece que va a ser esto...
miramos los últimos ficheros modificados en el
directorio del Wingest, y vemos que el CONT.DBF se ha
modificado justo cuando registramos el programa.
Miramos el fichero con un editor de texto y
efectivamente, este es el fichero donde se guarda la
información de que el programa está registrado.
Si le borramos nos vuelve a salir la ventana de registro
al arrancar, y si le volvemos a poner, el programa carga
registrado.
Bueno, ya está crackeado.
No ha sido muy dificil, aunque hemos tenido suerte de no
tener que tracear ni una sola línea de código, tal vez
en la próxima versión el sistema de protección esté
mejorado y nos tengamos que ver la cara con: VFP6R.DLL /
Microsoft® Visual FoxPro® Runtime Library... quien
sabe.
Hasta el próximo tutorial...
|