Cargamos Smartcheck y desde ahí lanzamos
el programa que vamos a estudiar. Bien , vamos a
incorporar gráficos para ilustrar mejor el
comportamiento de Smrtck, de acuerdo? Así nos resultará
más fácil de comprenderlo (y menos teclas a tocar pa mi
xDDDD). Lanzamos el programa desde la opción Program/Start
y una vez dentro de él nos vamos a la opción Register.
Entramos como nombre: Usuario Registrado[WkT!] y como número
de serie, mi número mágico: 9900990099, ¡vale, vamos
allá! . 
Mirad bien el comportamiento de la rutina.
Toma el primer caracter del nombre y su código ASCII y
se suma consigo mismo, al resultado le llamaremos SUMA (170=85+85),
luego toma el segundo caracter (s) cuyo valor ASCII es
115, ok?, Vemos un resultado "370" ¿¿¿comor??????.
Bueno, tenemos SUMA,115 y otra vez 85 (cód ASCII de
"U"), sume- mos otra vez: 170+85+115= 370,
ahora SUMA=370. Ya tenemos la fórmula, SUMA + Cód.ASCII
del primer carácter del nombre + cód. ASCII de cada uno
de los caracteres del nombre, al final, esto dá un
resultado, en este caso: 4355, Bien qué hace, además,
la ru- tina de cálculo del número de serie???, veamos:

Bueno, parece fácil, no?. 4355 * 2 =
8710; 8710 * 2 = 17420; etc. etc. etc...., pero cuan- tas
veces realiza esta operación?, 36 veces, al final dá un
número LONG que parece ser el número de serie deseado,
veamos, despues de la larga cuenta, nos arroja:
748183302963- 20, parece un numero de serie en toda regla,
pero aún no acaba la cosa aquí, porque si en- tramos
este LONG, nos lo escupe con los siento Burt Lancaster,
la cagaste. :) Así pues, con tinuamos.

Aqui, subrayadito esta: 149637e+014, o
sea: 149636660592640, Uallllaaaaaaaaaa!!!!. Exito total,
lo entramos y.... Thanks!!! el mensaje feliz! Yatá, I got
it!!! That's all folk!!!.
Pero que ha hecho?. Lo ha reducido.
Mientras la cifra final sea mayor que 200000000000000#,
cifra = cifra /2, esto os lo digo yo que me lo he curra o:)
Bien ya tenemos todos los ingredientes
para confeccionar el KeyGen. Amos allá!
Suma=Asc(1er. caracter nombre) + asc(cadauno
de los caracteres del nombre), tantas veces como letras
tenga el nombre. En Basic seria algo así:
L=Len (nombre$) .......... Longitud del
nombre.
(cod.asc.primer.caracter) b# = Asc(left$(nombre$,1))
... en nuestro caso: 85
Ahora vamos a buscar el número sagrado
que se vá multiplicar 36 veces. Sería algo asi:
For x = 1 To L
e# = Asc(Mid$(nombre$, x, 1)):....en e se lamacena el
ASCII de cada caracter del nombre
suma# = suma# + e# + b#
Next
Ok!, en suma tenemos yá almacenado el
numero dorado, 4355
La segunda parte es:
For x = 1 To 36
suma# = suma# + suma#
Next
suma# = 74818330296320, pero no nos vale.
la tercera parte del keygen es:
While suma# >= 200000000000000#
suma# = suma# / 2
Wend
Ahora suma# contiene el serial correcto
para ese nombre: 149636660592640
y ya hemos confeccionado el KeyGen. No es
ná, gracias y tá otra!
|