--
ESTUDIO COLECTIVO DE DESPROTECCIONES | ||
![]() |
WKT Tutorialz Site | ![]() |
![]() |
![]() |
![]() |
progrAmA | Submission Wizard 4 | W95 |
DEsCripCión | Programa para Promoción de páginas web. | |
tipo | Shareware | |
protECCión | Límite de 30 días de uso, con opción para registrarse. | |
DiFiCultAD | 1) Principiante, 2) Amateur, 3) Aficionado, 4) Profesional, 5) Especialista | |
hErrAmiEntAs | SoftIce 3.22 | |
CrACkEr | Mr.Brown | |
FEChA | Julio de 1998 |
Introducción |
Hay una opción para registrarse, en donde hay que introducir sólo la clave, pero no ningún nombre. Pero la clave debe calcularla en función de "algo"(normalmente es el nombre), lo cual no he rastreado. O puede ser algún valor del registro, .....
El objetivo será conseguir una clave válida que nos permita registrarnos correctamente.
De todas maneras, por el tipo de programa que es (da de alta webs en buscadores), puede que los
fabricantes de este software hagan algún tipo de comprobación al conectar con ellos.
Por mi parte, me interesaba esta desprotección ya que el programa está hecho en Visual Basic 5,
y tenía curiosidad en ver como se podía hacer, ya que estos pgms se basan en las llamadas a la
DLL del V.Basic, lo que los hace más engorrosos de seguir. |
Al Atake |
Arrancar el Pc con el SoftIce 3.22, con el fichero WinIce.Dat debidamente configurado.
(Ver "Introducción al SoftIce" en la sección de Documentos Genéricos para más información)
Por ser un programa de V.Basic5, debemos tener también en el WinIce.Dat :
La idea es tan simple que no tenía muy claro si funcionaría, pero ha ido bién. ;-DDD
Si después de introducir una clave, nos dice si es correcta o no, entonces es que la compara
con algún otro valor.
Así pues, nos interesa interceptar el programa en cuanto haga esa comprobación de la clave. (PeroGrullo Rulez ;-)
O sea, pasito a pasito tenemos :
Ok, el BPX hace efecto, y nos hallamos en el código de la msvbvm50.dll. 0137:0048F59B mov ebx, [MSVBVM50!__vbaStrCmp] 0137:0048F5A1 push eax 0137:0048F5A2 push 43ADE8 0137:0048F5A7 call ebxAsí que pongo un BreakPoint antes de que se produzca la llamada a la función que compara. (doble click en 137:48F59B, o BPX 137:48F59B) El BreakPoint anterior ya se puede desactivar (BD 0) si todavía no lo habéis hecho.
Ctrl+D para seguir la ejecución del programa, y nos dice que registration invalid,
Estaremos en el SoftIce en :48F59B, y ahora sí localizamos facilmente los valores a comparar.
Como somos un poco mal pensados, apuntamos en un papel las letras que se ven en :43ADE8
Otra vez en la pantalla de Registro, aunque esta vez ya será la última. ;-)
Como supongo que la clave debe variar según el ordenador, no creo que sirva de nada que dé la que a mi me ha salido. |