Karpoff Spanish Tutor

Programa: StaynOn 98 v 1.5

 

PROTECCION: Trial 30 dias
Descripcion: Mantiene activo el servidor enviando Ping
Dificultad: Novato
DOWNLOAD: http://shareware.intercom.es/servlets/busca2?n=3594
Herramientas: W32Dasm & Heditor Hexadecimal
CRACKER: karpoff   FECHA: 08/08/99

 

    INTRODUCCION

 


## Tutorial de Crackeo Para Newbies desde Cero 08/08/99

Por Karpoff 

PROYECTO 1 ##

StaynOn 98 v 1.5

He escogido este programa porque creo que es uno que esta a la altura de cualquier newbie que quiera intentarlo.

Podéis bajar el programa de 

http://shareware.intercom.es/servlets/busca2?n=3594

Este programa nos da 30 usos, agotados los 30 usos nos sale un nagscreen para introducir un N/S si es incorrecto se cierra el programa.

Los ataques que podemos Utilizar son localiza la rutina donde se comprueba él numero de serie falso que metamos con el original, y de esta manera capturaremos el Original.

O podemos localizar la rutina que se encarga de comprobar cuantos usos llevamos y manipularla para que haga la comprobación al reves ósea no registrado seria como estar registrado, o podríamos eliminar esa rutina si no fuese mas que para comprobar los usos que llevamos o si solo comprobase si nos hemos registrado o no ( lo entendéis..?). Como esta pagina esta dedicada para newbies desde cero, utilizaremos la segunda opción

herramientas: desensamblador W32dasm y un editor hexadecimal Hex Workshop32 , ultraedit etc. yo usare el primero

 


 
  

       AL ATAKE

 

 Comenzamos a currar. Siempre que nos dispongamos a estudiar cualquier Programa tenemos que fijarnos con ojos de búho como se ejecuta el programa, que mensajes nos da, que limitaciones tiene, que pasa si intento registrarlo, que pone en el about, etc. Etc. Etc. Y podéis ir apuntando lo que creáis interesante. 

Bueno al ejecutar el programa vemos que no sale ninguna pantalla que nos indique que tenemos 30 usos, tampoco nos sale el típico nag para registrarnos, pero en el propio programa leemos la frase You Have 30 Uses Remaining!! ( te quedan 30 usos) cada vez que inicies el programa te quita uno.

Apuntamos la frasecita y pasamos a ver que hace cuando intentamos meter un numero de serie cualquiera así que vamos a Register y elegimos la opción Enter registration Number ponemos ej. 111111112 pulsamos OK y vemos que no nos dice nada ósea que descartemos ese punto de ataque que seria de los mas frecuentes localizar el aviso que nos sale y apartir de hay buscar las rutinas que han hecho la llamada al nagscreen, pero como no hay aviso pos nada. Que podemos hacer...

LO primero hacer una copia del ejecutable stayon.exe en el mismo directorio donde lo hemos instalado la copia será parra aplicarle los cambios que vayamos haciendo podemos llamar a la copia stay.exe

ejecutamos el W32dasm y desensamblamos stayon.exe, una vez que termine de desensamblarlo pulsamos el botón -Strn Ref- esto nos mostrara una ventana con todas las cadenas de texto que se encuentren en el programa como podrían ser los mensajes de error o cualquier texto que el programa pueda mostrar durante su ejecución, que podemos buscar? Lo lógico seria buscar el mensaje de error que nos tendría que haber dado al intentar registrarlo pero como no hay mensaje de error tendremos que encontrar una solución, Os recomiendo que no tengáis ninguna prisa ir con calma si no tenéis muchas ganas hoy ya continuareis otro dia no conviene agoviarse que no estamos currando ;-D. si revisamos paso a paso todas la cadenas de texto no encontramos ninguna frase típica como Expired Program, o Thank you Regidter, pero si vemos la frase que nos avisa de los usos que nos quedan, si os acordáis salía al ejecutar el programa, bueno pues ya tenemos el punto de ataque, hacemos doble clip encima de la frase y nos lleva directamente a el siguiente código.

* Posible StringData Ref. from Data Obj -> "You Have %d Uses Remaining!"

|

:00401B11 68D4504000 PUSH 004050D4

:00401B16 8D55BC lea edx, dword ptr [ebp-44]

...........

Para que salga ese mensaje a tenido que haber un momento en la ejecución del programa en la que realiza la comprobación de cuantos días nos quedan o si estamos o no registrados, ósea que tiene que haber por ahí una rutina o parte del código que si estamos registrados no nos manda al código de error por lo tanto esa rutina o ese código podemos manipularlo ya que si estaríamos registrados nunca nos mostraría este mensaje noo? ( entendéis la lógica que os intento explicar esto es aplicable a todos los programas, unos muy retorcidos otros muy sencillos pero todos se pueden manipular para nuestro beneficio)

bueno pues busquemos por encima de este código haber que encontramos.

lo que intento localizar es un salto que si estamos registrados evite la rutina de error y si no siga adelante con la comprobación,

y en 00401ABF tenemos un salto que podría comprobar si estamos registrados o cuantos usos nos quedan vemos que según el valor que lleve eax salta pasando el mensaje de cuantos usos nos quedan o continua normalmente

.......

......

:00401ABD 85C0 test eax, eax 

:00401ABF 7573 jne 00401B34 ------> SALTO A LA RUTINA DE COMPROBACIÓN

:00401AC1 8B4DA8 mov ecx, dword ptr [ebp-58]

.....

.....

.....

Bueno pues probemos a modificar el salto para que no realice las comprobaciones De usos o de si estamos registrados.

00401ABF 7573 JNE 00401B34 POR

00401ABF 7473 JE 00401B340 O POR

00401ABF EB73 JMP 00401B340

Con Cualquiera de los dos cambios el programa funcionaria perfectamente con el primero invertiríamos la rutina de tal manera que lo bueno seria no estar registrado ( entendéis espero que si.) y el segundo cambio es un salto incondicional ósea que estemos o no registrados ejecuta el salto de tal manera que evita el mensaje. 

Para poder cambiar el salto necesitamos el editor hexadecimal, ejecutamos el editor ex que tengamos pulsamos abrir archivo y abrimos la copia que hemos guardado antes stay.exe , y como localizamos en el editor el código que tenemos que cambiar, para eso volvemos al W32dasm y pinchamos con el ratón la línea donde esta el salto que queremos cambiar ósea 00401ABF 7573 JNE 00401B34 al selelcionarla se resaltara de color verde entonces mira en la barra de estado la barra de estado es la barra de abajo ahí hay algunos números mira el que pone offset: 00000EBFh debes pulsar la opción goto Hex o find offset dependiendo de que editor tengar supongo que no tendrás problemas y sino pues pruebas asta que lo encuentres debes meter la dirección del offset que te indica el desendamblador en este caso EBF la [ h ] del final no se pone nunca y los ceros anteriores lo que tu quieras si quieres los pones o no, aparecerás en el código hexadecimal exactamente en E8E7 0600 0085 C075 738B en el 75 que esta en negrita he puesto los números de alrededor para que te agas una idea de cómo lo vas a ver, ya solo te queda aplicar los cambios que son el 74 cambiarlo por 74 o por EB Espero que entendáis este manual y que os sea de ayuda, parece que no pero cuesta un huevo escribir estos manuales asta el siguiente.

75 = jne

74 = je

eb = jmp

90 = nop

Este material es solo para uso educativo, por ahora los cracks son ilegales. 

Email Kf_karpoff@hotmail.com

Url   http://welcome.to/karpoff

 

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