karpoff Spanish Tutor 1999-2002

Programa:

SciencePress


 

PROTECCIÓN: Número de Serie
Descripción: Editor de texto con excelentes prestaciones Matemáticas, Físicas y Químicas
Dificultad: Newbie
DOWNLOAD: ftp://licensing.mackichan.com/downloads/swp-pro400.exe
Herramientas: SofIce
CRACKER: LeafaR GV   FECHA:  

 

 INTRODUCCIÓN

     Después de mucho leer, practicar y fallar. Algo he aprendido y eso es lo que pretendo compartir en este my primer tutorial ((( Espero que no sea el último ))). Tratare de explicar lo mejor que pueda todo lo que hice para encontrar el serial Valido justificando lo mejor que pueda cada PAso.
      La protección en si es bastante simple y será súper fácil de seguir

 

 

 Al ATAKE

        YAp, vamos al grano. Instalamos el Programa y no aparece nada extraño en el registro, no modifica ningún archivo de windows ((( entiendase autoecxec.bat, sistem.ini, win.ini ....etc ))), por tando solo tendremos que abocarnos al ejecutable SP.EXE el cual esta escrito en Visual C++ sin encriptar ni nada raro.
       Aunque solo usaremos el Softice para encontrar el numero de registro no esta de más sacarle una copia a SP.EXE ... ((( más vale prevenir que curar o reinstalar!!!!)))

       Cargamos SP.EXE en Simbol loader del SOFTICE ... como ?¿

Muy simple, abrimos el Simbol loader del SOFTICE, le damos a buscamos SP.EXE luego aquí nos marca un error le damos al y salta el SOFTICE en el punto de inicio del SP.

       Ahora con F5 dejamos correr el programa y aparece un linda ventanita de Registration la cual nos entrega un ID igual a 9TQ5R9-UVXA99-FRVKV2-C9BX79 y pide un Registration Code lo lógico seria que este ID sea distinto para cada PC ((suponiendo que dependiera del Hardware ))
       Si introducimos un Registration Code "691350" nos lanza una ventanita de error (ALgo Clasico no ?¿ )..

     Ahora si que sip!!!! introducimos un Registration Code "691350" entramos al SOFTICE ((Ctrl +D )) empezamos con un Break-Point clásico, GetWindowTextA ((bpx getwindowtexta)) salimos del SOFTICE ((Ctrl +D )) le damos al botón y salta el SOFTICE producto del BPX. Apretamos un F12 para finalizar la rutina de la librería User32 y caemos de una en SP ...específicamente en el siguiente pedazo de código:

FF1544565700 CALL [USER32!GetWindowTextA]
8B4C2408 MOV ECX,[ESP+08]
6AFF
E821350000
EB0C
8B01
FF742408
FF9088000000
5E
C20400
PUSH
CALL
JMP
MOV
PUSH
CALL
POP
RET
FF
0053350B
0052FFF8
EAX,[ECX]
DWORD PTR [ESP+08]
[EAX+00000088]
ESI
0004

       El cual no nos entrega mucha información y realmente no se que es lo que hace, pero después de unos pocos F10 llegamos al ret de la rutina y salta al algo que es realmente interesante.

..
..
..
..
..
..
004D0CC0**
..
..
004D0CC7 *
..
..

8B0F
33ED
33C0
8B51F8
85D2
7E11

803C012
7501
45
40
3BC2
7CF4
83FD04
7451

MOV
XOR
XOR
MOV
TEST
JLE

CMP
JNZ
INC
INC
CMP
JL
CMP
JZ
ECX,[EDI]
EBP,EBP
EAX,EAX
EDX,[ECX-08]
EDX,EDX
004D0CD1

BYTE PTR [EAX+ECX] , 2D
004D0CC7
EBP
EAX
EAX,EDX
004D0CC0
EBP, 04
004D0D22
..
EBP se deja en cero
EAX se deja en cero
..
..
((((((( no jump )))))))
se compara [EAX+ECX] con 2d
Salta si no son iguales*

Incrementa en 1 EBP
Incrementa en 1 EAX
Compara EAX con EDX
Salta si es menor EAX**

Compara EBP con 4
Salta si EBP es igual a 4

        Con una simple inspección el el registro ECX ((d ECX)) en la primera linea de codigo encontramos algo muy interesante.... Sip el 691350 y ademas HDZ-4050-P9JFE-RT8TVI-12621 que te digo ?¿ es el Registeration Code que estábamos buscando.

Pero como buen estudiante de Ingeniería Civil Química y aprendiz de Cracker no podia dejar la cosa asi:::

     Si miran con atención el trozo de código que esta destacado... mmmm lo notan?¿ Si-No aquí va my explicación.
Primero noten como EBP y EAX se dejan en cero y a EDX se le asigna un valor que depende de la cantidad de guiones (-) que posea el Registeration Code.
Se comienza comparando el elemento que esta en [EAX+ECX] ((( el primer numero del Registeration Code))) luego si es igual a '2D' ((( 2D es " - " en ASC))) no salta he incrementa EBP y EAX en 1 sino solo incrementa EAX ... Al ir creciendo EAX nos desplazamos un lugar dentro del code, es decir vamos elemento por elemento buscando los guiones '2D' dentro del Registeration Code y cada ves que encontramos uno aumentamos en uno el contador EBP ((EBP cuenta los guiones)).
     Este ciclo se repite mientras EAX sea menor a EDX cuando EDX es igual a EXA se sale del ciclo y se compara EBP con 4 ((revisa si el Registeration Code tenia 4 guiones)) si se cumple logramos el éxito, sino nos envía la Ventanina indicando que el code es Erróneo.....

Tenemos dos contadores uno que cuenta guiones (EBP) y otro (EAX) que permite avanzar elemento por elemento dentro del Registeration Code donde solo se revisan EDX elementos de este. Al terminar el ciclo se revisa si en los EDX elementos del Registeration Code se encontraron 4 guiones, si este es el caso el Registeration Code es aceptado

SI toda esta teoría es cierta basaría con poner ---- como Registeration Code para ser aceptado... ADIVINEN QUE PASO

 

El Programa es Gueno pero la Protección deja bastante que desear, aunque si buscan un buen sistema Tex/LaTeX para Güindous te recomiendo Miktex el cual puedes en-contrar en sourceforge en forma totalmente gratuita bajo licencia GPL.....

 

Chaop !!!!


 

My Web Pager: http:\\www.udec.cl\~rafgonza
My dirección de e-mail: rafgonza@udec.cl
Si algo no quedo muy claro o si cometi algun error no dudes en comunicarnelo
Vuela tu Cabeza... Fuma DINAMITA !!!!


My dirección de e-mail: rafgonza@udec.cl

 

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