--

Whiskey Kon Tekila CrACking tEAm.
WKT Tutorialz Site
WKT
progrAmA 4Screens 1.27 W95
DEsCripCión Utilidad para el escritorio
tipo Shareware
url http://www.ezy2use.com
protECCión 30 dias de evaluacion
DiFiCultAD 1) Principiante, 2) Amateur, 3) Aficionado, 4) Profesional, 5) Especialista
hErrAmiEntAs SoftIce 3.24, Wdasm 8.93
CrACkEr Jumanji
FEChA Octubre de 1998
ComEntArio Programa que permite tener hasta 4 escritorios en Windows

Introducción
El objetivo sera intentar encontrar el numero de registro real del programa.

Al Atake

Lo primero que haremos sera ejecutar el programa e intentar registrarnos.

Para registrar el programa, pulsar el boton "I" y la opcion Enter Registration Key donde se pedira:

Enter Your Name: Jumanji
Enter Your Company: Jumanji
Enter Registration Key: 3007199

El campo Registration Key solo admite hasta 7 digitos.
El valor introducido, puede ser cualquiera.
Pulsar el boton OK.

Nos saldra una ventana con un mensaje de error, "WRONG Key has been entered...Cannot unlock 4Screens".
Apuntar este mensaje.

Arrancar el W32Dasm y desensamblar una copia del fichero 4Screens.exe.

Una vez terminado el proceso, salvar el proyecto para no tener que desensamblarlo otra vez.

Pulsar el menu Refs / String Data References, aparecera una ventana con todos los strings que el W32Dasm considera como tales. Buscar el mensaje que nos aparecio al intentar registrar el programa.

Una vez que lo hayamos localizado, pulsar un doble click sobre la linea y nos situaremos automaticamente en la linea que contiene dicho mensaje.
Pulsar sobre el boton Close de la ventana SDR.

Nos encontraremos en el siguiente punto:

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004013D5(C)
|
:004014B4 6A00 push 00000000
:004014B6 6A00 push 00000000

* Possible StringData Ref from Data Obj ->"WRONG Key has been entered...cannot "
....................................... ->"unlock 4Screens."
|

:004014B8 682CF14200 push 0042F12C <--Aparecemos aqui
:004014BD E81F930100 call 0041A7E1

Como podemos ver, aqui llegamos desde un salto condicional en la linea :004013D5.
Vayamos hasta esta parte del codigo:

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004013AB(C)
|
:004013C3 33C0 xor eax, eax
:004013C5 EB05 jmp 004013CC <-- Salto incondicional

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:004013A7(C), :004013B7(C)
|
:004013C7 1BC0 sbb eax, eax
:004013C9 83D8FF sbb eax, FFFFFFFF

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004013C5(U)
|
:004013CC 33C9 xor ecx, ecx
:004013CE 85C0 test eax, eax
:004013D0 0F94C1 sete cl
:004013D3 84C9 test cl, cl
:004013D5 0F84D9000000 je 004014B4 <-- Salto al mensaje de error

Aqui podemos ver que hasta la linea :004013CC viene desde un salto incondicional situado en la linea :004013C5 y a la linea :004013C3 desde un salto condicional en la linea :004013AB.
Esta parte del codigo es la que nos interesa:

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004013C1(C)
|
:0040139F 8A10 mov dl, byte ptr [eax] <-- Esto es importante
:004013A1 8A1E mov bl, byte ptr [esi] <-- Esto es importante
:004013A3 8ACA mov cl, dl
:004013A5 3AD3 cmp dl, bl
:004013A7 751E jne 004013C7
:004013A9 84C9 test cl, cl
:004013AB 7416 je 004013C3 <-- Salto condicional
:004013AD 8A5001 mov dl, byte ptr [eax+01]
:004013B0 8A5E01 mov bl, byte ptr [esi+01]
:004013B3 8ACA mov cl, dl
:004013B5 3AD3 cmp dl, bl
:004013B7 750E jne 004013C7
:004013B9 83C002 add eax, 00000002
:004013BC 83C602 add esi, 00000002
:004013BF 84C9 test cl, cl
:004013C1 75DC jne 0040139F

En la linea :0040139F, es donde empieza realmente la comprobacion del numero de registro, asi que pasaremos al SoftIce y pondremos un BreakPoint en la linea :0040139F.

Para ello, arrancaremos el Symbol Loader del SoftIce y cargaremos el fichero 4Screens.exe mediante el menu File / Open Module, despues pulsaremos en el menu Module / Load.

Apareceremos en la pantalla tipica del SoftIce.
Aqui pondremos el siguiente BreakPoint:

bpx 0040139F

Pulsar F5 para volver al programa y pedir otra vez la opcion de registrar el programa.
Entrar los campos y pulsar el boton OK.

Saltaremos al SoftIce, justo en la linea en la que pusimos el BreakPoint.

En este punto, miramos el contenido del registro EAX y ESI, podremos ver el numero de registro real:

d EAX <-- Nuestro numero = 3007199
d ESI <-- Numero real = 3370776

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.

NOTA: Para este programa, da igual lo que se ponga en los campos del registro.
Siempre es el mismo numero de registro.