| ESTUDIO COLECTIVO DE DESPROTECCIONES Última Actualizacion: 25/10/2001 |
Programa | Talisman v1.1 | W95 / W98 / NT
Descripción | Programa para crear tu propio escritorio de Windows.
Tipo | Shareware
Tipo de Tutorial | [X]Original, []Adaptación, []Aplicación, []Traducción
Url | http://www.lighttek.com
Protección | Numero de Serie
Dificultad | 1) Principiante, 2) Amateur, 3) Aficionado, 4) Profesional, 5) Especialista
Herramientas | SoftIce v3.24
Objetivo | Simular estar registrados.
Cracker | Mr.WhiTe [WkT!]
Grupo | Whiskey Kon Tekila
Fecha | 11 de Mayo de 1999
INTRODUCCION
El programa no tiene limitaciones por no estar registrado, pero aparece una nag-screen cada vez que se arranca el programa. Hay una opción para registrarse, introduciendo el nombre y la clave. El objetivo será obtener nuestro número de serie correcto y comprender mejor el funcionamiento de la función HMEMCPY.
AL ATAQUE
Lo primero es ver cómo reacciona el programa al intentar registrarnos. Ponemos un nombre, y clave cualquiera, y nos aparece un mensaje de clave incorrecta. "Invalide registration name or code. Try again." Podriamos utilizar el "death listing" o listado muerto y bucear en el código una vez desensamblado con el Wdasm 8.9, pero lo mejor será practicar un poco con el SoftIce. :o) Así pues, cargamos el Talisman y nos disponemos a introducir nuestro nombre y un numero de serie cualquiera. Vamos al SoftIce(Ctrl+D) ,ponemos el breakpoint(BPX HMEMCPY) y volvemos al programa(Ctrl+D), ahora pulsamos el boton " Register! " y aparecemos en el SoftIce. Como teniamos dos campos a rellenar (nombre y serial) ahora nos encontramos en el primero, pulsamos F11 (o Ctrl+D, es lo mismo) con lo cual el Softice nos pega otro pantallazo :o) Ahora si, estamos en el buen camino. ;o) Desactivamos el breakpoint (BD 00) y pulsamos F12 unas cuantas veces hasta llegar al código del Talisman. Traceamos un rato (F10) hasta alcanzar el siguiente fragmento de código:
    :0047FC88 E8E73FF8FF     call 00403C74

    :0047FC8D 85C0           test eax, eax

    :0047FC8F 7E13           jle 0047FCA4

    :0047FC91 BA01000000     mov edx, 00000001  ;Empieza con el primer caracter

    :0047FC96 8B4DF8         mov ecx, dword ptr [ebp-08]

    :0047FC99 0FB64C11FF     movzx ecx, byte ptr [ecx+edx-01] ;Mueve el codigo del caracter a ECX

    :0047FC9E 03F1           add esi, ecx ;Va sumando los codigos

    :0047FCA0 42             inc edx      ;Prepara el siguiente caracter

    :0047FCA1 48             dec eax      ;Decrementa el numero de caracteres que quedan

    :0047FCA2 75F2           jne 0047FC96 ;Ultimo caracter?
Este es el comienzo del código que se utiliza para calcular nuestro número de serie. Se pasan los caracteres ASCII del nombre a su correspondiente valor hexa y se van sumando. Si seguimos traceando (F10) llegamos al siguiente punto:
    * Referenced by a (U)nconditional or (C)onditional Jump at Address:

    |:0047FC8F(C)

    |

    :0047FCA4 8975EC         mov dword ptr [ebp-14], esi

    :0047FCA7 DB45EC         fild dword ptr [ebp-14]

    :0047FCAA E8C52CF8FF     call 00402974

    :0047FCAF 69C009030000   imul eax, 00000309 ;Multiplica la suma por 309

    :0047FCB5 8BF0           mov esi, eax

    :0047FCB7 3B75FC         cmp esi, dword ptr [ebp-04] ;Compara serial real con el nuestro

    :0047FCBA 0F85BF000000   jne 0047FD7F  ;Salta si "mal cracker"

    :0047FCC0 B201           mov dl, 01    ;Activa el Flag de REGISTRADO

    :0047FCC2 A1E0D54700     mov eax, dword ptr [0047D5E0]

    :0047FCC7 E810DAFFFF     call 0047D6DC

    :0047FCCC 8BF0           mov esi, eax

    :0047FCCE B101           mov cl, 01

    * Possible StringData Ref from Code Obj ->"Invalide registration name or "

                                            ->"code. Try again."

                                 |

    :0047FD7F B830FE4700     mov eax, 0047FE30

    :0047FD84 E80B0CFCFF     call 00440994
Como puede observarse, en este fragmento de código se multiplica la suma obtenida anteriormente por 309, y el valor se guarda en esi para su posterior comprobacion en :0047FCB7. Si nos situamos en esta línea " :0047FCB7 3B75FC cmp esi, dword ptr [ebp-04] " y escribimos en el SoftIce " ? esi " obtendremos nuestro ansiado número de serie. Facil ¿verdad? ;o) Puesto que el algoritmo empleado es sumamente sencillo, se deja como ejercicio al lector crear un generador de numeros de serie.
    *±±========-*-*-*-* P E R S O N A L   G R E E T Z *-*-*-*-========±±*

        Dasavant, Niabi, r00ster, ZEncrakz, Azrael, Klimpong, Zor

        Conde-Vampiro, Mac-Crack, Killer_P, ASTAGA, Harvestr, Iczelion

        JosephCo, Carpathia, Taylor, Tapu, Ivanopulo, EgoistE, Torn@do,

        JUANDA, Leoworld, ReKiem, Neural_N, Netking, Russ97,

    	    Mr.Pink and of course all WKT Members ;o)
[ Entrada | Documentos Genéricos | WkT! Web Site ]
[ Todo el ECD | x Tipo de Protección | x Fecha de Publicación | x Orden Alfabético ]
(c) Whiskey Kon Tekila [WkT!] - The Original Spanish Reversers. Si necesitas contactar con nosotros , lee esto antes e infórmate de cómo puedes ayudarnos