Karpoff Spanish Tutor

Programa: TechScheduler V 2.70


 

PROTECCION: Trial 30 dias Name / Serial
Descripcion: ?????
Dificultad: Novato
DOWNLOAD: http://www.winutils.com/techsche.htm
Herramientas: W32Dasm & Editor Hexadecimal
CRACKER: karpoff   FECHA: 15/08/99


 

    INTRODUCCION

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

Por Karpoff PROYECTO 4 
 
 

TechScheduler V 2.70

Hola nuevamente !! Un saludo para todos los que seguís esta serie de Manuales Para Newbies desde Cero, (Hola Búho Otro mas J ).

Y ya estamos en el Cuarto Proyecto, Me gustaría recordaros las tácticas que hemos ido utilizando ósea la forma en que debemos pensar cuando nos enfrentamos a un nuevo reto. Siempre observar detenidamente como actúa el programa al ejecutarse , al intentar Registrarnos , Cuando Expira el programa Etc. Yo suelo coger una hoja en Blanco para cada nuevo proyecto y voy apuntando todos los avisos que nos pueda dar, Esto nos sirve mucho mas de lo que podáis pensar, si ya tenéis experiencia en petar otros programas comparar como actúan unos y como actúan otros, ejemplo programas de la misma empresa, por lo general todos llevara el mismo tipo de protección entonces si recordáis o si apuntasteis como crackeais un programa solo tenéis que seguir los mismos pasos creerme que os facilitara mucho trabajo.

Por ahora solo hemos trabajado con listados muertos, los ataques han sido localizar las rutinas que comprueban el tiempo que nos queda de evaluación, rutinas que comprueban si hemos metido el N/S correcto y manipularlas, invertirlas o eliminarlas. Hemos podido acceder a estas rutinas gracias al W32Dasm y buscando los mensajes que nos han dado los programas cuando hemos intentado registrarnos o a través de los datos de evaluación como,"nos quedan 28 días de evaluación "o similares, Localizados los avisos hemos investigado que parte del código se ha encargado de activar los mensajes, como habéis visto siempre ha habido una rutina de comprobación seguida de un salto que según el valor que da la rutina que se encarga de comprobar salta o no salta.

Bueno pues el Programa que hoy os invito a estudiar esta basado en el mismo tipo de protección, si os fijáis pertenece a la misma empresa que el que estudiamos en el tutorial Nº 3, recordar lo que os he dicho antes sobre los programas de la misma empresa etc. Me gustaría que probarais a petarlo sin la ayuda del manual digamos como un ejercicio.Por que creo que si habéis seguido los manuales anteriores no vais a tener ningún problema. Este va ha ser el ultimo manual que trate de este tipo de protecciones, En el siguiente empezaremos a utilizar el Soft-Ice e intentaremos localizar un N/S Correcto para un programa en concreto que todavía no lo he decidido. 

Así que animo y suerte. El programa esta en:

http://www.winutils.com/techsche.htm TechScheduler V 2.70


 
 
 

      AL ATAKE

Este Programa nos da 30 días para Evaluarlo, Pasado ese tiempo no se lo que pasa al ejecutarlo nos muestra una llamativa Pantalla amarilla recordándonos que estamos en evaluación.

Si pulsamos en Window about Use Reg Key nos da la opción de registrar el programa.

Ataques, Localizar la rutina que se encarga de verificar si el n/s que hemos metido es correcto y manipularla para nuestro beneficio, o bien eliminarla si es posible, también podemos localizar el punto exacto donde compara nuestro n/s con el verdadero y capturar el verdadero pero Como en los manuales anteriores optaremos por la primera ya que podemos localizar la parte del código que nos interesa con un listado muerto que es lo que nos mostrara el W32Dasm cuando desensamblemos el ejecutable.

Herramientas las de siempre el W32Dasm y un Editor Hexadecimal el que mas os guste en mi caso utiizare el Workshop32.

Empezamos lo Primero es hacer una copia del Ejecutable para poder aplicar los cambios con el HexEdit cuando localicemos los Bytes a manipular, en la misma carpeta donde hemos instalado el programa podemos hacer la copia de Teksched.exe con el nombre que queramos, por ejemplo Crack98.exe o podemos crear una carpeta nueva y copiar todos los archivos de una a otra. ( lo de copiar todos los archivos es porque si copiamos el ejecutable solo es posible que funcionase ya que puede utilizar alguna librería propia)

Ejecutamos el W32Dasm y desensamblamos Teksched.exe seguidamente editamos con el HEX la copia del ejecutable.

Vamos a ver como se comporta el programa cuando intentamos registrarnos, lo ejecutamos vamos a Window, about Use Reg Key y rellenamos con los datos que queramos, aceptamos y como era de esperar una ventanita que nos dice que la hemos cagado ( Registration Key Failed ) para nosotros es lo mejor que podía ocurrir ya que ahora sabemos por donde le atacaremos.

vamos al W32Dasm e intentamos localizar la cadena de texto que nos ha contestado, para ello ya sabéis pulsar [Strn-Ref] se Habré la ventana con todas las cadenas de texto que utiiza el programa para comunicarnos lo que sea y la buscamos, una vez localizada hacemos doble clip en la frase y saltamos de inmediato a:

Posible StringData Ref From Code Obj à"Registration Key Failed!"

:004792AD B88C944700 mov eax,0047948C 

:004792B2 E81DE6FDFF CALL 004578D4

Como siempre Cliqueamos nuevamente en la misma frase para ver si hay mas llamadas de otra parte del código a esta frase , en este caso no hay mas. Bueno pensemos para que se imprima este mensaje el programa ha tenido que hacer alguna llamada o algo así a esta parte del código, echemos un vistazo, y justo encima vemos lo contrario la referencia a la frase Registration Key Accepted que bonito suena esto, yo al ver que están tan cerca una frase de la otra lo único que pienso es que la parte del código que hace que se activen estos mensajes tiene que ser sencilla del tipo una sola comprobación si el n/s es correcto el código se sigue ejecutando si es incorrecto salto al mensaje de error o viceversa ósea que todo queda resumido a un salto después de una comprobación, pues busquemos por encima de los mensajes vemos enseguida dos saltos a 004792b7, Fijaos bien y analizar que puede ocurrir si se activan estos saltos, ya?? Bueno yo Observo que dada la dirección a la que apuntan nos podrían mostrar el mensaje de Registration Key Failedsi el salto no se ejecuta y si se ejecuta el salto se pasaría dicho mensaje, pero en cualquier caso nunca llegarían al mensaje de Registration Key Accepted no?? Osea que no es lo que buscamos, Recordad que características tendría que tener el salto que buscamos, debería de estar en una dirección de memoria que si metemos el n/s correcto pueda mostrar el mensaje Registration Key Accepted , y si fallamos pueda llegar a Registration Key Failed ósea que la dirección de memoria a la que apunte el salto nunca debe de pasar de 004792A8 (Aquí esta el mensaje de error) y tiene que estar situado antes de 0047928A Para que pueda imprimir Registration Key Accepted

Como siempre digo esta es la forma en que yo pienso que puede funcionar el programa, aunque se que hay programas tan enrrevesados que esta teoría no nos serviría de nada.

Aclarado esto continuamos. Mirar que salto tenemos en 0047928A

Podría tener las características que buscamos noo?
 
 

0047928A 750A jne 00479296

Possible StringData Ref from Code Obj -->"Registration Key accepted!"

|
 
 

:0047928C B868944700 mov eax, 00479468

:00479291 E83EE6FDFF call 004578D4

Reerenced by a (U)nconditional or ( C)onditional Jump at Address:

:0047928A( C)
 
 

:00479296 A1E0F35100 mov eax, dword ptr [0051F3E0]--- salta aqui
 
 

:0047929B C60000 mov byte ptr [eax], 00

:0047929E EB17 jmp 004792B7 --Lleve el valor que lleve salta

...................

....

....

Esta antes de Registration Key accepted y si salta no pasa de 004792A8 que es donde esta Registration Key Failed Observemos lo que hace, según el valor que reciba este salto saltara o no, si no salta nos mostraría el mensaje de Registration Key accepted y si salta caerá en 00479296, si cae aquí, antes de llegar a Registration Key Failed se va ha encontrar con otro salto en 0047929E y este tipo de saltos son saltos incondicionales que saltan tenga el valor que tenga ( jmp ), entonces como sabemos que de todas todas va ha saltar miremos donde cae, ohhh se ha saltado el mensaje de Registration Key Failed por lo tanto este tampoco es lo que buscamos,

Bueno pues sigamos buscando por ahí arriba, vemos otro par de saltos que no tienen las características que buscamos (igual no existe lo que buscamos y tenemos que pensar en otra cosa L ) sigamos para arriba mas y mas mas mas y alto aquí hay uno que parece que tiene lo que buscamos.
 
 

:0074916A 0F8530010000 jne 004792A0 

como veis si el salto no se ejecuta puede llegar Registration Key accepted ,y si se ejecuta ósea salta va directo a Registration Key Failed ,Pues sin probarlo os aseguro que es este, tenemos que modificarlo para que no salte o inutilizarlo que seria lo mismo.

Lo primero localizar la dirección del Offset, no diré como se hace porque ya lo sabéis. Corremos hacia el Editor HEX que lo tenemos abierto con una copia de Teksched.exe y buscamos la dirección de Offset 7856A y nos mostrara esto.

8B55 E0E8 16B1 F8FF 0F85 3001 0000

En rojo el salto definido en HEXADECIMAL y en rojo resaltado el cambio que tenemos que hacer

8B55 E0E8 16B1 F8FF 0F84 3001 0000 Nos quedara así. También podemos inutilizar el salto sustituyendo la cadena en hexadecimal por 90s

8B55 E0E8 16B1 F8FF 9090 9090 9090 Que nos quedaría Así. Esto es como si no existiría el salto, yo no he probado si funciona pero supongo que si.

En cualquier caso salváis los cambios y probáis a registrarlo, bienn!!! nos acepta el numero que metamos lo hemos conseguido ;-)

Como en los anteriores una vez que os acepte el n/s podéis eliminar la copia del ejecutable y utilizar el original, ya que los datos quedan en el registro de windows, y si eliminamos la copia en realidad no estamos utilizando un programa crackeado, ya que el ejecutable no esta modificado J

En los anteriores manuales no lo he comentado pero conviene hacer el crack y guardarlo, quizás nos pueda hacer falta en un futuro. Para los que no sabemos programar tenemos un montón de creacracks, estos son programas que comparan el ejecutable original con el que hemos partcheado y crea un ejecutable con los datos que obtiene, tenemos muchos donde escoger pero recomiendo escoger uno haga los ejecutables pequeños, en mi pagina web encontrareis los dos que creo que son mejores uno el el CrackMaker , este genera los ejecutables no superiores a 10 o 15 KB y el otro es el RTD_pather este funciona en MS/DOS y puede crear el crack en código fuente del lenguaje que queramos la sintaxis es la siguiente

C:>RTD_PT20.EXE [ARCHIVO ORIGINAL] [ARCHIVO CRACKEADO] /OPCION

LAS OPCIONES SON / P PARA PASCAL

/ C PARA C

/ A PARA ASM

/ X PARA UN EJECUTABLE .COM

/ D PARA UN ARCHIVO CON LOS DATOS

ESTE CREAPATCHES ES MUY UTIL, PARA APRENDER COMO HACER LOS CRACK.

Cuando hagáis un crack nunca le deis el mismo nombre que el del archivo a crackear ya que no puede haber dos archivos con el mismo nombre en el mismo directorio.

Como siempre os obligo a que lo entendáis. (os recuerdo que el siguiente proyecto que tengo pensado hacer necesitaremos el Soft-Ice V4. En la Web encontrareis info sobre donde localizarlo, Instalaion Etc. No dejéis de practicar

 Un Saludo a TODOS/AS. (Karpoff)

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