|
Manuales Cracking JB_Duc |
|
Aplicación: |
Web Facil Pro v1.1.0 |
|
Download: |
|
|
Protección: |
Nombre/Clave. Limitación 21 días ó 30 usos. |
|
Objetivo: |
Obtener clave válida y realizar un KeyGen. |
|
Herramientas: |
Exdec y WKTVBDebugger v1.3 . |
|
Cracker: |
Fecha: |
01/01/2002 |
RENUNCIA
En éste tutorial no encontrarás números de serie ni cracks, su finalidad es UNICAMENTE educativa, por lo que no me hago responsable por el uso que se le pueda dar. En él sólamente se explica el procedimiento seguido para su desprotección, por lo cual, si quieres liberar el software de su protección, el crack, lo tendrás que realizar tú mismo.
Introducción
Aplicación para realizar páginas web de forma visual o con código.............
- En éste tutorial vamos a crackear nuestra primera aplicación en Visual Basic y compilada en P-Code. Su protección es por Nombre y clave de registro, además está limitada en el tiempo a 21 días ó 30 usos, pasados los cuales, si no nos registramos, la aplicación no se ejecuta. Teniendo en cuenta que todavía no dominamos el tema de P-Code, pido disculpas por los errores de interpretación de código que pueda existir, pero creo que en lo fundamental hemos acertado.
Procedimiento
- Antes de comenzar, voy a decirte algo sobre el WKTVBDebugger, referente a su instalación; además de la aplicación te deberás descargar el DBG.ZIP, el cual habrás de descomprimir en la carpeta "Dbg" que se crea en la instalación del debugger, deberás buscar en windows---->System, el archivo "bdasmdll.dll" y copiarlo en el directorio raíz del debugger, además deberás de tener intaladas las librerías "MSVBVM50.dll", para VB5 y "MSVBVM60.dll", para VB6, y ésto es todo, el debugger ya estará listo para poderlo utilizar. Sobre su manejo, viene incluído un archivo de ayuda bastante completo, con su lectura tendrás una idea perfecta de su manejo. Podrás descargarlo en mi web en la sección de enlaces---->Mis herramientas, ahí también podrás descargar el EXDEC.
- Dicho lo anterior, comenzamos, tenemos instalado nuestro WKTVBDebugger, nuestro desensamblador EXDEC y nuestra aplicación WebFacil PRO. Si la miramos con Language 2000, nos dirá que está realizada en Visual Basic 5 y no está empacada, si intentas decompilar con SmartCheck, nos dirá que está compilada en P-Code, así que descartamos esa herramienta, utilizaremos nuestras dos nuevas herramientas, en primer lugar vamos a ver que ocurre si intentamos registrarnos.
- Ejecutamos webFacil y nos muestra una nag en la que nos dice que tenemos 21 días de prueba y al lado un contador que nos muestra las veces que hemos arrancado la aplicación, además un botón para continuar, otro para visitar la web del programador y otro para registrarnos, le damos a éste último y nos muestra el diálogo de registro, en el que tendremos que introducir un nombre y una clave, lo hacemos y nos dice que "el nombre ó la clave son incorrectos", bien, pues buscaremos esa cadena en el listado desensamblado con EXDEC, ya sabemos como se utiliza EXDEC.
- Una vez desensamblada la aplicación, buscamos la cadena de texto que hemos anotado, y llegamos a:
- Miramos hacia arriba en el código y vemos algunos saltos (BranchF) que si los invertimos nos pasarían por encima de éstos mensajes de error, yo los invertí y probé, la aplicación me dijo que el nombre y la clave eran correctos, pero seguía estando sin registrar, así que lo que haremos será estudiar la rutina de generación del serial correcto.
- Mirando hacia arriba en el código, vemos que estamos dentro de ésta rutina, así que seguimos hacia arriba hasta llegar al principio del procedimiento, que es la dirección 47A738, en esa dirección pondremos un bpx con el debugger y tracearemos para ver que es lo que va ocurriendo, así que manos a la obra.
- Arrancamos el debugger:
![]()
- Abrimos webfacil y pinchamos en el botón "ejecutar", nos saldrán dos ventanas que habremos de aceptar y estamos en el código:
![]()
- Pongamos el bpx, seleccionamos el botón "On Execution" y nos muestra:
![]()
- Como ves ésta ventana es muy intuitiva, no necesita explicación, en la caja de texto introducimos la dirección donde ponemos el bpx, 0047A738, le damos a "Add" y ya lo tenemos, seguidamente le damos a "Go!(F5)" para continuar con la ejecución, nos sale la nag inicial, nos vamos a registranos, introducimo un nombre y una clave, aceptamos y caemos en el debugger en:
![]()
- Traceamos con F8, viendo lo más significativo:
![]()
- Seguimos F8 :
![]()
- Seguimos y vemos que en 47A867, carga un valor, seguramente será el primer caracter del nombre, en la línea siguiente empuja a la pila el caracter "a", y en 47A870, los compara, después tenemos en 47A875 un salto, si son distintos salta a compararlo con el caracter "b", si son iguales, continúa, ésto es importante, fíjate en la línea 47A87B de la imagen siguiente, que empuja a la pila un valor 17E5h, (hexadecimal), que equivale a 6117 en decimal, y en la siguiente lo suma (AddI4) y en la línea 47A884, tenemos un salto, éste corresponde al bucle que nos comprobará el siguiente caracter:
![]()
- Seguimos, lo anterior, lo repite con todos los caracteres desde la "a" hasta la "z", con nímeros del "0" al "9" y con las vocales acentuadas y otros signos, así va generando el número de serie, hasta llegar a:
![]()
- Llegados a éste punto, observamos en la línea 47B266, que empuja a la pila un valor, éste valor es fijo, y un poco más abjo lo suma (AddI4), por lo que interpretaremos que éste valor es sumado al total acumulado por las coincidencias de caracteres, además tenemos en la línea 47B281,(FnLenStr), que mira la longitud del nombre y en la línea siguiente lo suma, seguimos con F8:
![]()
- En 47B2A3, carga un valor hexadecimal, (nuestra clave correcta, que habremos de convertir a decimal), y en 47B2A7, hace la comparación final, que nos llevará a registrado ó no registrado a través del salto en 47B2AE.
- Resumiendo, lo que hace es lo siguiente:
- 1.-Quita los espacios a la izquierda y a la derecha del nombre.
- 2.-Convierte a minúsculas todos los caracteres.
- 3.-Va comparando cada caracter del nombre con "a,b,c.......0,1,2,........, espacio, etc",cuando hay coincidencia, guarda un valor fijo para ese caracter, al que le suma el de la siguiente coincidencia, así con todos, ésto lo va guardando en una variable.
- 4.-A esa variable le suma al final el valor fijo "420992002" y el número de caracteres del nombre, incluídos los espacios intermedios y obtenemos la clave correcta.
- Cuando nos registramos correctamente, se crea un archivo 00webpro.key, donde guarda el nombre y la clave, este archivo lo consulta cada vez que se inicia la aplicación, si borramos éste archivo, dejamos de estár registrados.
- Tenemos la siguiente rutina que se repite con todos los caracteres de la "a" a la "z", números, etc:
- 47A862: 0a ImpAdCallFPR4: _rtcLowerCaseVar
- 47A867: 04 FLdRfVar local_00A8
- 47A86A: 3a LitVarStr: ( local_00F4 ) a
- 47A86F: 5d HardType
- 47A870: Lead0/33 EqVarBool<-----Compara carcter del nombre con "a"
- 47A872: 35 FFree1Var local_00A8
- 47A875: 1c BranchF: 47A887<----Si no es "a", salta a compararlo con "b"
- 47A878: 6c ILdRf local_0094
- 47A87B: f5 LitI4: 0x17e5 6117 (....)<-----Valor para "a", 6117
- 47A880: aa AddI4 <----Suma de valores
- 47A881: 71 FStR4 local_0094
- 47A884: 1e Branch: 47b25b <----Siguiente caracter
- Con los datos que tenemos, estamos en disposición de hacer nuestro KeyGen, yo lo realicé en Visual Basic, y cuando lo probé, me dí cuenta de que había que introducir un mínimo de 10 caracteres para el nombre, en algún punto del código se me escapó éste detalle, volví a realizar el KeyGen, y funcionó perfectamente, aunque yo lo hice sólo para caracteres de la "a" a la "z" y espacio.
- La realización del KeyGen te lo dejo como práctica, creo, que con el resumen anterior del proceso de generación de la clave, serás capaz de hacerlo, solo tienes que mirar en el código desensamblado el valor asignado a cada caracter, para a=6117, para b=3545, etc.
- Si tienes alguna duda, sugerencia ó rectificación que hacerme, no dudes en ponerte en contacto conmigo, te lo agradeceré.
- NOTA:Si quieres, y como práctica, puedes intentar quitar la limitación de tiempo y usos, es muy simple, basta con invertir un salto, así también crackearás la aplicación.
- Saludos y............
¡ HASTA EL PROXIMO !
|
Si crees que una aplicación está bien programada, te es útil y su precio es adecuado a su calidad, entonces, obra honestamente y registrate. |