Para registrar el programa, nada mas arrancarlo, se pulsara
el boton de Agree and Register donde se pedira:
Name: Mr.Grey
Company: Jumanji
Registration Key: 30071996
El valor introducido, puede ser cualquiera.
Pulsar Ctrl+D para entrar en el SoftIce y poner un
BreakPoint:
bpx MessageBoxA
Pulsar F5 para volver al programa y el boton OK.
Saltaremos al SoftIce y pulsaremos F11.
Volveremos al programa automaticamente y nos saldra una
ventana de error con el mensage "Invalid registration
information!" indicandonos que la informacion de
registro introducida es erronea.
Pulsaremos el boton Aceptar y volveremos a aparecer
en el SoftIce en la linea :004026D7.
Subreimos unas lineas en la pantalla de codigo, hasta la
linea :004026A9 donde veremos el siguiente codigo:
..... |
|
|
|
|
:004026A9 |
8D45E8 |
LEA |
EAX, [EBP-18] |
<-- Nuestro numero |
:004026AC |
50 |
PUSH |
EAX |
<-- Lo sube al stack |
:004026AD |
8D4580 |
LEA |
EAX, [EBP-80] |
<-- Nuestra compañia |
:004026B0 |
50 |
PUSH |
EAX |
<-- Lo sube al stack |
:004026B1 |
8D8518FFFFFF |
LEA |
EAX, [EBP-00E8] |
<-- Nuestro nombre |
004026B7 |
50 |
PUSH |
EAX |
<-- Lo sube al stack |
004026B8 |
E886000000 |
CALL |
00402743 |
<-- Calculo numero real |
004026BD |
83C40C |
ADD |
ESP, 0C |
|
004026C0 |
85C0 |
TEST |
EAX, EAX |
|
004026C2 |
7D15 |
JGE |
004026D9 |
<-- Salta si es correcto |
004026C4 |
6A30 |
PUSH |
30 |
|
004026C6 |
68048C4100 |
PUSH |
00418C04 |
|
004026CB |
68E08B4100 |
PUSH |
00418BE0 |
|
004026D0 |
53 |
PUSH |
EBX |
|
004026D1 |
FF1580244200 |
CALL |
[USER32!MessageBoxA] |
<-- Mensaje de error |
004026D7 |
EB60 |
JMP |
00402739 |
|
..... |
|
|
|
|
Quitaremos el BreakPoint que teniamos puesto con
bd 00
y situaremos un nuevo BreakPoint en :004026A9.
Pulsar F5 para volver al programa y pedir la opcion
de registrarlo.
Cuando pulsemos el boton OK, saltaremos al SoftIce
en la linea :004026A9 que es el BreakPoint que pusimos.
A partir de aqui, iremos pulsando F10 hasta llegar
a la linea :004026C0.
Por si a alguien le puede interesar, en la linea :004026B8,
se calcula el numero real y se devuelve en:
EAX = -1
si el numero introducido es erroneo.
En este punto (:004026C0), miramos el contenido
del registro EDX y podremos ver el numero de registro
real:
d EDX <-- Numero de registro real = 241-012-244
Ahora ya podemos desactivar el BreakPoint que teniamos,
escribiendo:
bd 00
y pulsar F5 para volver al programa.
Una vez en el programa, escribir el codigo real y ya esta
registrado.
|