Karpoff Spanish Tutor

Programa: StayOn the NET Pro V2.92


 

PROTECCION: Name /Serial
Descripcion: Evita que el servidor te desconecte, enviando ping
Dificultad: Novato
DOWNLOAD: http://www.stayonpro.com
Herramientas: W32Dasm & Editor Hexadecimal
CRACKER: karpoff   FECHA: 08/08/99


 

    INTRODUCCION

TUTORIAL DE CRACKEO PARA NEWBIES DESDE CERO 09/08/1999 

PROYECTO 2 ##   Por Karpoff

StayOn the NET Pro V2.92

Hola nuevamente a todos los que habéis decidido seguir esta serie de proyectos para Newbies desde Cero.

El proyecto que hoy os presento es muy parecido al anterior, si recordáis en el proyecto anterior el ataque elegido fue modificar la rutina que se encargaba de comprobar el numero de usos que llevábamos ya que teníamos un limite de 30 usos, cambiando un salto hicimos que el programa no comprobara el numero de usos quedando así sin ninguna limitación.

Hoy simularemos estar registrados ósea que al meter cualquier N/S lo acepte evitando así el que nos caduque a los 30 días, el programa elegido es similar al anterior pero mas completo,

Lo podéis coger de...

http://www.stayonpro.com

Herramientas un desensamblador ( W32Dasm ) y un editor HEX (Hex Workshop32, UltraEdit32 etc. ) 

Empezamos: Me gustaría que os fijaseis con mucho detalle en el código y las rutinas del programa, no utilicéis este tutoría a ciegas intentar entender todo lo que ocurre ya que no se trata de que hagais un crack sino que aprendáis a hacerlos, yo intentare explicarme lo mejor que pueda dentro de mis posibilidades ;-D.


 
 

      AL ATAKE

Bueno ejecutar el programa y fígaros bien en su funcionamiento lo primero que hace es mostrarnos un NagScreen con la fecha limite que tenemos para evaluarlo y nos da la oportunidad de registrarnos, si metemos un N/S cualquiera el programa sigue su ejecución normal sin mostrarnos si el numero es correcto o no.

Vamos a crear una carpeta nueva con el nombre que queráis y hacemos una copia del programa, ahora procedamos a desensamblar el ejecutable StayOn Pro.exe y abrimos con el editor HEX la copia que hemos hecho dentro de la nueva carpeta.

Por donde empezar no tenemos mensajes de error al intentar registrarnos ni nada que nos avise de que nos queda un día menos, que hacemos !! acordaros de lo que hicimos en el proyecto anterior busquemos cadenas de texto como Expired, Thank You for registering o similares, para mirar que cadenas de texto hay en el programa cliqueamos con el ratón el botón [Strn-Ref] y se nos habre una ventana con todas los textos les echamos un vistazo detenidamente y empezamos a ver cosas interesantes un EXPIRED, Thak you for Registering, This Program has Expired.

Creo que la mas interesante de todas es la que nos felicita por registrarnos ósea que hacemos un doble clip en Thank You for Registering y aparecemos en 

* Posible StringData Ref from Data Obj -> "Thank You For registering StayOn pro "

|

:004043OD 6800A34300 push 0043A300

:00404312 E8C7E80100 CALL 00424690

Y si hacemos nuebamente doble clip la misma frase aparecemos en:

* Posible StringData Ref from Data Obj -> "Thank You For registering StayOn pro "

|

:00405dbf 6800A34300 push 0043A300

:00405DC4 E8C7E80100 CALL 00424690

Siempre tenemos que comprobar cuantas referencias a la frase que buscamos hay en el código en este caso tenemos dos, si miramos alrededor de la primera vemos que en 004042EF tenemos un salto a 00404317 y si miramos en la segunda referencia vemos QUE en 00405DA4 tenemos otro salto a 00405dc9 las dos referencias con sus dos saltos parecen similares solo que en distintas direcciones de memoria, pero fijémonos detenidamente, en la primera referencia el salto que hemos visto no parece que venga ni valla a las rutinas de comprobacion del n/s por lo general la parte del código donde se comprueba el numero de registro suele ser complicado lleno de llamadas, comprobaciones, asignaciones de valores, saltos etc. y esta primera referencia no creo que sea la adecuada, (Esto lo veríamos muy claro utilizando un debug como es el soft-ice, pero por ahora no utilizaremos debug nos centraremos en listados muertos)así que de momento nos vamos a olvidar de la primera referencia y nos vamos a la segunda. 

Vamos al salto que tenemos en 00405DA4 7423 je 00405DC9 YO creo que lo que hace este salto es lo siguiente, al meter un n/s para registrarnos salta a la dirección que indica donde parece estar las rutinas de comprobación, hace las comprobaciones si hemos hacertado nos envía directamente al Thank you for .... y si no acertamos el programa sigue su ejecución normal en evaluación, pero que pasaría si suprimimos ese salto para que al meter un n/s cualquiera no haga ninguna comprobación, probamos..? miramos la dirección que marca el offset al hacer clip sobre el salto en cuestión, miramos en la barra de estado de el W32dasm y vemos esta dirección 00005DA4h como ya teníamos el editor Hex abierto y con una copia del programa, buscamos esa misma dirección, como ya comente anteriormente la [h] de la dirección del offset no nos sirve para nada ósea que buscamos esta dirección sin la [h] en el editor HEX, tenemos que llamar a la direccion del offset 5DA4 y nos lleva a FFFF 84C0 7423 6A01 8BCF 5850 los números que he marcado en rojo estos numeros son los que definen el tipo de salto y su direccion de memoria para eliminar el salto que nos interesa cambiamos 7423 por 9090 y esto quedaría así
 
 

00405da4 7423 je 00405dc9 --- el salto original tenemos que cambiar dos Bytes el 74 y el 23

00405da4 90 nop--------|

00405da5 90 nop--------|  y el salto eliminado un byte, asignado a cada linea

ahora solo nos queda salvar los cambios y probar ( se entiende que debemos ejecutar la copia que hemos hecho no el original, ya que los cambios los hemos hecho en la copia) bien funciona nos acepta cualquier n/s que metamos y si después ejecutamos el original también funciona ósea que el registro del programa se queda validado en el system.dat de Windows.

Espero que lo entendáis y que practiquéis ya que cuesta la hostia hacer un manual de estos es posible que las rutinas no funcionen como las he intentado explicar ya que no soy ningún experto, pero en cualquier caso el crack funciona, podéis mandar vuestros comentarios sobre estos manuales o vuestras sugerencias, criticas etc.

75 = jne

74 = je

eb = jmp

90 = nop 

leer esto de abajo...

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

Email Kf_karpoff@hotmail.com

URL: http://welcome.to/karpoff  http://members.xoom.com/kf_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