Bien, para ahorrar tiempo y complejidad
al tutorial, diré que existe una rutina que conviente el
nick en minusculas. Asi pues, comencemos con nuestra
tarea. Entramos en Soft-Ice previo BPX HMEMCPY y seguimos con los pasos
reglamen- tarios que todos ya conocemos.
k!, Ya hemos llegado. Las direcciones que aqui se
mostrarán son ficticias, solo para uso informativo.
Bien, nos encontramos con la rutina de creación de
Serial:
445EA3 CALL 00451514; Convierte el NICK en minúsculas.
Traceamos y llegamos hasta donde
nos interesa....
445EC4 MOV EAX, [EBP-0088] ; Contador
que no nos interesa. Bucle!!.
-------- TEST EAX, EAX ; Mira si EAX = 0.
-------- JS 00445EEA ; Si Eax es = 0 salta y salimos a Kernel
otra vex !!!!
445ECE M0VSX ECX, BYTE PTR
[EAX+EBP-00CC]; Almacena cada uno de los caracteres del
nick en ECX, ¡¡¡¡¡¡¡¡¡¡¡¡PERO
COMENZANDO AL REVES!!!!!!!!!!!!!!. El cáculo se
inicia con el último caracter del nick
-------- IMUL EAX, ECX, 00A2AFB7; Multiplica y deja en Eax, el valor de Ecx
* 10661815 (= 00A2AFB7 Hex).
-------- ADD [EBP-08C], EAX ;Almacena en este offset el valor de EAX
que se irá sumando en EBP-08C y que luego, con otra
operación generará el Serial correcto.
-------- DEC DWORD PTR [EBP-088]; Contador = nº de cracteres del nick,
decrementando. No nos interesa pá ná.
-------- JMP 0045EC4; Salta pa'rriba.
Salimos
al Kernel y pulsamos F12 hasta entrar en la rutina de
nuevo!.
445F18 MOV
ECX, [EBP-008C] ; En Ecx se almacena la cifra que
anteriormente se calculó.
-------- JBE 00445F2A ; Salta madikita, salta!
445F2A MOV
EDX, [EBP-0090] ; Almacena en Edx nuestro ID
personal.
(El numerito
de la caja de enmedio)
-------- SUB EDX, ECX ; Tacháaaaaaaaaaaan!!! Aquí está
nuestro Número de Serie buscado. Al numerito calculado
anteriormente se le resta nuestro numerito ID, pa dar el
Serial bueno.... Hehehehehehehehehe. Yastoi registrao
!!!!!
-------- JMP 00445F32; Salta y compruebalo !!!
445F32 ADD
ESP, 4 ; Bah,
ná!.
---------- CMP EAX, EDX; PATCH , PATCH! Aquín vá el
patch!!! Compara nuestro fake serial con el serial
correcto!!!!. Por lo tanto cambiamos por esto: CMP
EDX, EDX, asi si hacemos que siempre se compare
con el bueno.....heheheheheh
-------- JZ 445F5B; Ok! Thank you for registering this
shit !
***************************************
Pos bueno, yastá entendida la rutina que genera el
serial correcto, podemos hacer en cual- quier lenguaje de
alto nivel el Keygen correspondiente a este programilla
shareware. Solo hay que recordar que el NICK debe estar
en minusculas y qye empieza por el último carac- ter.
Valga un sencillo ejemplo en VBasic,
ok?, a lo bestia y sin depurar. :-O
Private Sub
Command1_Click()
cifra = 10661815 ' (OOA2AFB7 hexadecimal)
n$ = LCase(Text1.Text) ' almacenamos en n$ nuestro nick
L= Len(n$) '
metemos en L la longitud del nick !!
For x = 1 To L ' Iniciamos el bucle
a$ = Mid$(n$, x, 1) '
Vamos de caracter en caracter
b$ = a$ + b$ ' y
metemos nuestro nick en b$, pero al REVES :)
Next ' No pares,
sigue, sigue !!
For y = 1 To L '
Iniciamos el bucle
z$ = Mid$(b$, y, 1) '
Vamos de caracter en caracter
ka = Asc(z$) '
Almacenamos en ka el valos ASCII de cada caracter de
nuestro nick
eax = ka * cifra '
Almacenamos en eax un valor que :
ebp = ebp + eax ' a
su vez queda en Ebp sumandose a cada paso
If ebp > 4296967295#
Then ebp = ebp - (4294967295# + 1#) ' Uaalllllaaaaa ! que es esto ?, joder,
esto no está en la rutina ASM ! Hehehehehe ;-) Pues
bien. Llega un momento en que EBP se desborda
!, luego hay que partir de 0 de nuevo. Ese
numero: 4296967295 es FFFFFFFF en hexadecimal, pero para
que se desborde le hamos de añadir 1, asi vuelve a 0 de
nuevo y continúa el cálculo del serial, ok? Si esta
rutina no la hacemos el keygen no dará resultado.
Next ' No pares, sigue, sigue !!
serial = ebp - Text2.Text ' Bien, bien. Al resultado de EBP le
restamos nuestro ID per- sonal, entrado en la 2da. caja,
perooooooo nos puede dar serials negativos puesto que el
numero calculado en EBP a veces es menor que el ID, asi
que:
If serial
< 0 Then serial = -serial ' convertimos los serials negativos en
positivos
Text3.Text = serial 'Sacamos por pantalla nuestro
premio a la constancia!!!!
End Sub ' Adiós !
Y ya está todo
hecho Newbies ;-). AstalaVista
*±±========-*-*-*-* P E R S O N A L G R E E T Z *-*-*-*-========±±*
A todos los Crackers del pasado, del presente y del futuro.
|