Ir a la pantalla d registro que esta situada en el menu Help /
Register... donde se pediran los campos:
Key: Mr.Grey
Code: 30071996
Pulsar CTRL+D para entrar en el SoftIce y poner un BreakPoint asi:
bpx MessageBoxA
y pulsar la tecla F5 para volver al programa.
Pulsar el boton OK y apareceremos en el SoftIce.
Pulsar la tecla F12 y volveremos al programa en donde veremos una
ventana con el mensaje de que el codigo es erroneo.
Pulsar el boton Aceptar y volveremos a aparecer en el SoftIce.
Pulsar F12 y F12 para situarnos en el codigo perteneciente al
programa que estamos ejecutando con el siguiente codigo:
:00428941 51 push ecx <-- Mirar esto
:00428942 52 push edx <-- Mirar esto
:00428943 FFD3 call ebx <-- Rutina de comprobacion
:00428945 83C408 add esp, 00000008
:00428948 F7D8 neg eax
:0042894A 1BC0 sbb eax, eax
:0042894C F7D8 neg eax
:0042894E 84C0 test al, al
:00428950 7410 je 00428962 <-- Registrado
:00428952 6A00 push 00000000
:00428954 6A40 push 00000040
* Possible StringData Ref from Data Obj
->"Invalid Key or Registration ID. "
........................................->"Please try again."
|
:00428956 687CB34D00 push 004DB37C
* Reference To: MFC42.MFC42:NoName0022, Ord:04B0h
|
:0042895B E8A6E60600 Call 00497006
:00428960 EB68 jmp 004289CA <-- Aparecemos aqui
Si miramos el codigo que hay unas lineas mas arriba de donde aparecemos,
vemos que en la linea :00428950 hay un salto condicional que se salta el
mensaje de error.
Este salto, viene dado del resultado del TEST AL, AL anterior y que
es calculado en la llamada que hay en la linea :00428943.
Pondremos un BreakPoint en la linea :00428943 que es en donde se hace
una llamada a la rutina de comprobacion y quitaremos el BreakPoint anterior:
bpx 00428943
bc 00
Pulsar la tecla F5 para volver al programa y pedir la pantalla de
registro otra vez poniendo los mismos valores que la vez anterior y pulsar el
boton OK.
Apareceremos en la linea en la que pusimos el BreakPoint.
Justo antes de esta llamada se suben a la pila el registro ECX y
EDX.
Si miramos el contenido de ambos registros, podremos ver nuestro codigo de
registro y el real:
d ECX=30071996
d EDX=FGIB
Ahora ya podemos quitar el BreakPoint con bc * y pulsar la tecla
F5 para volver al programa y registrarlo con el codigo real.
|