Karpoff Spanish Tutor 1999-2002

Programa:

CDLX 2.0


 

PROTECCION: Número de Serie , una nag-screen con un pequenyo temporizador a 10 sec.
Objetivo: Obtener un número de serie válido
Descripcion:
Este es un programa que te deja en el Tray un PullDown para cerrar la machine y borrar el recent o el history del IE, etc
Dificultad: 3
DOWNLOAD: http://www.yeohhs.com/swwin
Herramientas: SoftIce
CRACKER:
[Moneo]
  FECHA: 09/10/2002

 

 INTRODUCCION

 

Disclaimer

Si estas buscando cracks o serials, aqui no los vas a encontrar. Todo lo que aquí se describe es puramente didactico, lo que el usuario final realice con dicha información sólo le acontece a él. Te recomiendo que si tienes la oportunidad adquieras el programa de forma legal, ya que de esta manera contribuyes a que el programa continue desarrollandose.

El autor sólo pretende ensenyar los diferentes métodos de protección que tienen los programa, no abusando de dicha información

Overview

    Este es un programa que te deja en el Tray un PullDown para cerrar la machine y borrar el recent o el history del IE, etc

 

 AL ATAKE

  

Para obtener el serial correspondiente, simplemente ejecutaremos el programa, e iremos al Pull-Down. Nos sale un Pop-Up pidiendonos el serial. Introduciremos un numero al azar y veremos que es lo que pasa. No sale otra ventana dicindonos que nos hemos colao, eso significa que tiene detección de serial, lo típico, bpx hmemcpy desdepués de introducir el serial y antes de apretar el [OK]. Y más o menos aterrizaremos por aqui: CS:401C36

FF15E0704000
8D442428
8D4C240C
50
51
E8AB010000
83C408
BE50814000
8D442428
8A10
8A1E
call [0004070E0]GetDlgItemTextA
lea eax,[esp][00028]
lea ecx,[esp][0000C] ;Nuestro serial
push eax
push ecx
call 000001D0 ;Aqui calcula el nuevo serial
add esp,08
mov esi,00408150 ;Cadena un tanto peculiar
lea eax,[esp][00028] ;Cadena generada dentro del call anterior
mov dl,[eax]
mov bl,[esi]


Hemos caido justo en el punto ideal, tenemos diferentes cadenas que son realmente sospechosas, lo mejor es analizar el calculo que hay dentro del call CS:401DF0.

83EC1C
B906000000
33C0
33D2
53
56
57
BE70834000
8D7C240C
8B5C242C
F3A5
66A5
8BFB
83C9FF
F2AE
F7D1
49
8BF1
85F6
7E32
8B4C2430
8BFB
8D44240C
55
2BF8
8BE9
8D442410
2BE8
8D441410
8A1C07
0218
42
3BD6
881C28
7CEF
5D
C6040E00
5F
5E
5B
83C41C
C3
8B4C2430
5F
C6040E00
5E
5B
83C41C
C3
sub esp,1C
mov ecx,00000006
xor eax,eax
xor edx,edx
push ebx
push esi
push edi
mov esi,00408370 ;Apunta a una constante
lea edi,[esp][0000C]
mov ebx,[esp][0002C] ;Apunta a nuestra cadena
repe movsd
movsd
mov edi,ebx
or ecx,FF
repne scasb ;Busca la longitud de la cadena
not ecx
dec ecx ;Longitud de nuestra cadena
mov esi,ecx
test esi,esi
jle 00000062 ---------- (1)
mov ecx,[esp][00030]
mov edi,ebx
lea eax,[esp][0000C]
push ebp
sub edi,eax
mov ebp,ecx
lea eax,[esp][00010]
sub ebp,eax
lea eax,[esp][edx][00010] (2) ;Apunta a una constante
mov bl,[edi][eax] ;nByte de nuestra cadena
add bl,[eax] ;Suma nByte de nuestra cadena con el de la constante
inc edx ;Contador de longitud
cmp edx,esi
mov [eax][ebp],bl ;El resultado de la suma lo guarda
jl 00000045 ---------- (2) ;Salta si no final
pop ebp
mov d,[esi][ecx],00
pop edi
pop esi
pop ebx
add esp,1C

retn
mov ecx,[esp][00030] (1)
pop edi
mov d,[esi][ecx],00
pop esi
pop ebx
add esp,1C
retn


De todo esto deducimos lo siguiente, el programa tiene una constante, por ejemplo: 7684142980000000 y una cadena edfgmnmndede, entonces lo que haces es sumar nuestro serial introducido por teclado(p.e. 1231321) con su constante:

K+ 37h 36h 38h 34h 31h etc...
S+ 31h 32h 33h 31h 33h etc...
T= 68h 68h 6Bh 65h 64h etc...

Y luego si continuamo traceando, vemos como compara la nueva cadena T con la que tiene también metida (edfgmnmndede). Por lo tanto ya podemos deducir el serial a utilizar, simplemente restamos las dos constantes:

K+ 65h 68h 6Bh 67h 60h etc
K- 37h 36h 38h 34h 30h etc...
S= 32h 32h 33h 33h 30h etc...

Bueno, como vemos este programa sólo tiene la posibilidad de generar un unico serial en toda su vida, fue bonito mientras duró... Por cierto, las constantes utilizadas son un ejemplo, buscalas en el ejecutable.

Cuando hayamos introducido correctamente el serial veremos con el programa genera un fichero que contiene la K-

 

Karpoff Spanish Tutor: Pagina dedicada a la divulgacion de informacion en Castellano, sobre Ingenieria Inversa y Programacion. Email "Colabora con tus Proyectos"
www.000webhost.com