ESTUDIO COLECTIVO DE DESPROTECCIONES
Última Actualizacion: 25/10/2001

Programa

Como crackear por Estado+Porcino

Capitulo 1.

Orígenes. TechFacts95

W95 / W98 / NT 
Descripción aplicacion de analisis del sistema
Tipo Trial de 30 dias 
Tipo de Tutorial [X]Original, []Adaptación, []Aplicación, []Traducción
Url http://ourworld.compuserve.com/homepage/deansoft
Protección Nag Screen. Time Limit 30 Dias
Dificultad 1) Principiante, 2) Amateur, 3) Aficionado, 4) Profesional, 5) Especialista 
Herramientas SoftIce y editor HEX
Objetivo Simular estar registrados.
Cracker Estado+Porcino
Grupo Whiskey Kon Tekila
Fecha Diciembre 1997
 


INDICE
* UN POCO DE TODO:

- Agradecimientos
- ¿Qué es eso de crackear?
- ¿Por qué crackear?
- ¿A quién va dirigido este curso?
- ¿Qué es lo que vamos a aprender?
- ¿No estaremos quitando el pan a los programadores de aplicaciones?
- ¿Qué necesito pa esto de crakear?


* IDEAS BÁSICAS SOBRE CRACKING:

* Herramientas CRACK:

- Editor hexadecimal
- Desensamblador
- Debugger


* ESQUEMAS DE PROTECCION:


* ESQUEMAS DE PROTECCIÓN BASADOS EN NÚMEROS DE SERIE:

- Acerca de los programadores
- Análisis de esquemas con número de serie
- ¿Cómo atacar?
- Otro punto de ataque
- Comparación de ataques
 
UN POCO DE TODO

Saludos Familia !

He decidido crear esta serie de capítulos con un objetivo puramente educativo (sin ningún tipo de obscuro interés comercial). Mi objetivo es ayudar a los nuevos crackers en sus primeros pasos.

Agradecimientos

Al TodoPoderoso +ORC, a su acólito +FRAVIA y a los miembros de WKT por su apoyo.

¿Qué es eso de crackear?

Crackear es el arte de reventar protecciones software/hardware con fines intelectuales, personales pero no lucrativos. Crackear también se llama ingeniería inversa (Reverse Engineering), ya que sin el programa fuente se es capaz de analizar el comportamiento del programa y modificarlo para tus intereses.

¿Por qué crackear?

Vivimos en un una sociedad que da asco. Es inconcebible que se destruyan o penalicen la producción de productos básicos (cereales,lácteos...) en aras de una estabilidad de precios.Vivimos en una sociedad donde el 95% de la gente se ve sometida al control de un 5 %. Toda persona debería tener un mínimo de recursos para ser feliz,pero esto no es así.

El noble arte del crakeo es una herramienta para distribuir la riqueza entre la sociedad. Si necesitas un programa (que tienes en un CD-ROM) y no tienes una cuenta en un banco USA, ni 30 dólares, ¿por qué narices tienes que esperar y pagar si lo necesitas?, crackealo y publica el crack en Internet. Así ayudarás a la gente menos afortunada que está axifiada por esta sociedad desigualitaria.

¿A quién va dirigido este curso?

Este curso va dirigido a toda persona con interés en el crack y/o con la filosofía crack. Sin olvidar a los programadores.

¿Qué es lo que vamos a aprender?

Dejaremos de un lado el añorado DOS, para centrarnos en cracks para programas en W95.

¿No estaremos quitando el pan a los programadores de aplicaciones?

Los programadores viven muy bien a costa de los royaltis que pagan las grandes empresas y esos repugnantes yupis encorbatados con escased de neuronas. Además, un programa crakeado es más conocido y utilizado que uno que no lo esté. Digamos que el crack es una forma de publicidad. Baste recordar el compilador de Pascal de la casa Borland. Originalmente fue copieteado y distribuido casi libremente hasta la saciedad. Borland conocía este hecho y por eso no introdujo ningún tipo de protección. Al cabo de poco tiempo, esos estudiantes se convirtieron en programadores que reclamaban a sus empresas la compra del compilador que sabían utilizar, el Pascal de Borland. Si las casas de soft ya son ricas sin nuestro dinero, ¿a que estado de corrupción se llegaría si lo tuvieran?. Aunque parezca extraño este ensayo está dedicado a formar a los programadores , mostrándoles sus defectos y el camino para producir software de calidad.

En último caso depende de la conciencia de cada uno, si crees que un programador ha realizado una buena aplicación, que te es útil y que además está bien programada, entonces obra adecuadamente y recompénsalo registrándote. A decir verdad sólo he encontrado un programa de este estilo

¿Qué necesito pa esto de crakear?

- Interés y PazYCiencia.

- Algún conocimiento de ensamblador. Cuanto más conozcas mejor crackearás, pero para este curso mas bien poco, intentaré hacer las cosas fáciles.

- Ayuda de otro cracker más experto (por ejemplo Estado+Porcino)

COMO CRACKEAR TECHFACTS

CÓMO CRACKEAR TECHFACTS 95:

Objetivo: TechFacts 95.
Versión: 1.30 3/7/97
Nombre del ejecutable: Teckfct95.exe
Website: http://ourworld.compuserve.com/homepage/deansoft
Tamaño del ejecutable: 1.251.840 bytes.
Tipo de protección: Por número de serie.
Dificultad: ameba.
Tiempo de crackeo: 2 minutos.
Herramientas: SoftIce 3.0 y Editor Hexadecimal.


Siguiendo las recomendaciones de +ORC empezaremos por crackear nuestras propias herramientas crack. El programa en cuestión es una pequeña joya que nos permitirá, entre otras muchas cosas, rastrear las acciones de un determinado programa, buscar cadenas de caracteres en ficheros, trabajar con dll.. Generalmente,lo utilizo para rastrear programas de instalación, obteniendo información de los ficheros creados, las entradas de registro añadidas o borradas, ...

Manos a la obra. El programa es un ejecutable que no necesita otro fichero para funcionar (cosa rara en estos días). Así pues, arranquemos el programa veamos lo que ocurre. Aparece una horrible ventana diciendo que utilicemos nuestra VISA o MASTERCARD y que soltemos los 19,99 dólares (unas 2500 pesetas) que tenemos para ir a tomar cervezas.

Echemos un vistazo al programa. Entre otras cosas, hay una opción en TOOLS/WATCH SYSTEM, que nos permite rastrear un programa. En HELP/HELP TOPICS/ORDER FORM aparece una hoja de registro en la que nos avisa de que además tenemos que paga 2 dólares para gastos de envío, ¡cómo si costará 250 pelas enviar un mail con el número de serie!.

En HELP/ABOUT TECHFACTS 95 encontramos un botón USE REG KEY. Aquí es donde tenemos que introducir nuestro Nombre (First name), apellidos (Last name) y el número de serie correspondiente que lo recibiremos por mail si pagáramos 19,99 dólares más 2 dólares de gastos de envío. Empecemos por aquí.

Pongamos un nombre, un apellido y un número cualquiera y pulsemos el botón REGISTER. Entonces escuchamos un pitido y aparece una ventana de mensaje diciendo REGISTRATION KEY FAILED. Ahora ¡pensemos un poco!, apliquemos un poco de ZEN CRACKING.

Lo único anormal es el pitido. Si tu fueras un programador y quisieras que pitará tu "cacharro" tienes dos opciones construirte un bonito programa en ensamblador que lo haga, o bien utilizar una función de pitido presente en alguna de las vomitivas librerías de funciones, también llamadas API. ¿ Qué piensas que ha hecho nuestro "vago" programador ?. ¡Bingo! ha utilizado la función MessageBeep de la librería USER32.DLL. Este un punto de ataque muy claro, aunque existen muchos otros.

Apliquemos la técnica LIVE, es decir, utilizaremos el SoftIce. Reinicialicemos nuestro ordenador en modo Ms-Dos, lancemos el WinIce y volveremos a Windows.

Abramos el LOADER de SoftIce y en FILE/OPEN MODULE seleccionemos el fichero Tekfct95.exe. Pulsemos Load o el botón con las ruedecillas dentadas. Nos aparece una ventana de mensaje del SoftIce diciendo que no puede cargar la tabla de símbolos, pulsemos el botón SÍ y aparecemos directamente en el SoftIce con la pantalla en modo texto. En este momento nos encontramos en la primera sentencia de nuestro programa. Pulsemos bpx messagebeep con esto tomaremos el control antes de que aparezca el pitido. Con Ctrl-D volvemos a Windoce y el programa sigue ejecutándose normalmente pero con un cebo en messagebeep. Elegimos la opción de registro y escribimos cualquier cosa en nombre, apellidos y número de serie, pulsamos el botón y aparecemos de bruces en :

USER32!MessageBeep

014F:BFF623C1 B148 MOV CL,48 **** Aparecemos aquí.****

014F:BFF623C3 EB12 JMP BFF623D7

Si pulsamos en este momento F12(continuar hasta un RET) nos situaremos en:

014F:0047BA65 EB11 jmp 0047BA78

014F:0047BA67 6A30 push 00000030

014F:0047BA69 E822A7F8FF Call 00406190 **** Llamada a MessageBeep****

014F:0047BA6E B8BCBB4700 mov eax, 0047BBBC

014F:0047BA73 E824BEFBFF call 0043789C **** Pintamos la ventana de error ****
En tu ordenador las direcciones de memoria pueden ser diferentes.

¡Sintamos el código!. Estamos en mitad de las sentencias de error, lo que implica que debe haber un salto condicional a este conjunto de sentencias de error. El salto debe ser condicional porque en caso de haber metido correctamente el número de serie habríamos obtenido algún tipo de mensaje de felicitación. Así pues, sólo debemos encontrar ese salto condicional y modificarlo.

Miremos por encima de la dirección 014F:0047BA69, nos encontramos en 014F:0047BA65 un salto incondicional jmp 0047BA78, en una ejecución normal nunca llegaríamos a 0047BA67 ya que siempre saltaríamos a 0047BA78. Por tanto, lo que debemos buscar es un salto condicional a la dirección 0047BA67. Si volvemos hacia atrás un poco con los cursores encontramos este bonito salto

014F:0047B934 E89B73F8FF call 00402CD4

014F:0047B939 0F8528010000 jne 0047BA67 **** ¡BINGO! ****

014F:0047B93F 8D45B7 lea eax, dword ptr [ebp-49]

Hemos encontrado el salto, sólamente hay que modificarlo. Fijaos que el salto se produce después de una llamada a la rutina call 00402CD4 apostaría el pellejo a que esta es una rutina para comprobar si tu número de serie es correcto. Si no es igual (jne) salta a las sentencias de error. Si es igual continua ejecutándose. Hay muchas formas de invertir el salto:

1.- Cambiar 0F8528010000 jne 0047BA67 por

0F8500000000 jne 0047B93F

2.- Cambiar 0F8528010000 jne 0047BA67 por

404840484048 inc eax,dec eax, inc eax, dec eax, inc eax, dec eax

La 1 es un salto neutro, sea igual o no siempre se ejecuta la sentencia siguiente. La 2 es la preferida por +ORC, cambia el salto por un conjunto de parejas incrementar - decrementar que dejan el registro eax sin cambios en su contenido.

Solamente hay que tener en cuenta dos cosas para modificar el código, sustituir siempre el mismo número de bytes (cambias 2 bytes por 2 bytes) y que tus modificaciones sean una sentencia en ensamblador correcta.

El SoftIce nos permite hacer cambios On-Fly, es decir, en ese mismo instante, pero el cambio no es permanente. Para ello, nos vemos obligados a utilizar algún editor hexadecimal, con el cual abriremos el fichero ejecutable, y buscaremos la cadena en hexadecimal E89B73F8FF0F8528010000 y la cambiaremos por E89B73F8FF0F8500000000. La cadena se encuentra en el offset 0X7AD34(los números en hexa llevan delante un 0X) que en decimal es 503092.

Así pues tenemos que irnos al byte 503092 de fichero ejecutable y comenzar a hacer cambios.

Ahora tendremos el ejecutable parcheado, si nos registramos nuestro número de serie siempre será aceptado.

Un crack no es más que un pequeño programa que abre un fichero y cambia un par de bytes por otros. ¡Nada más sencillo! Sólo hay que saber qué bytes hay que cambiar. Cuantos menos bytes se cambien más elegante será el crack.

Si habéis seguido todos los pasos habéis crackeado vuestro primer programa. Aun nos sois cracker pero estáis en la buena senda. Sólo hay que poner interés.

Para gentes más avezadas, comentaré que el flag de activación se iniciativa correctamente en :0047BA5E mov byte ptr [004CF31A],00 La rutina de protección es bastante patética, con gran cantidad de código inactivo. Empieza en :47B5C0. Obviamente se podría haber hecho algún otro tipo de pero este es el más simple (se podría haber obtenido el número de serie real, o haber creado un generador de claves).El programador ha puesta a "pelo" la dirección de retorno en :47BA3F push 47BA54. Es un ridículo truco que nos hará perdernos si continuamos ejecutando normalmente, por ello es conveniente pulsar "F12" y mirar hacia por encima sin ejecutar sentencias.

Espero vuestras opiniones, sugerencias y ensayos en estadoporcino@hotmail.com
En breve analizaremos tipos de protecciones mucho más interesantes.

Recordad bebed de la fuente, buscad a +ORC en la red.

 

[ 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