Sunteți pe pagina 1din 4

< INTRODUCCION AL CRACKING >

Autor: [KRaViTZ]
Notas del autor: Este material completamente para uso educativo y no me hago responsable en
absoluto del uso que el lector le pueda dar al mísmo ni de los daños y/o perjucios le pueda
ocacionar. Si desea publicar este manual puede hacerlo libremente pero respetando los
derechos de autor. Si Ud. no está de acuerdo con las condiciones de uso de este documento,
por favor no lo lea y elimínelo de su disco duro.

Objetivos

El objetivo de este manual es que los lectores interesados puedan intruducirse a este mundo
del cracking desde otro enfoque diferente al que la gente conoce. Que puedan iniciarse con un
mínimo de conocimientos previos que se les brindarán en este manual.

Concepto de Cracking

Tambien recibe el nombre de Ingeniería Inversa, es la ciencia que estudia la seguridad de


sistemas de protección tanto de software como de hardware con el objetivo de violarlos para
aprender de ellos y obtener un beneficio personal sin fines de lucro. Podemos definirlo tambien
de forma más generalizada como la acción que consiste en la modificación total o parcial de
sistemas mediante alguna técnica específica para adaptarlos a las nececesidades personales de
uno o bien solucionar fallas o errores de los mismos.

Breve introducción a la materia

Casi todo el mundo ve al cracking como pirateria, como algo ilegal, aunque algo de razon hay
aqui si se emplea incorrectamente como en la mayoría de los casos. Se supone que toda ciencia
es usada para el bien, y el cracking deberia serlo. Seria bueno que los crackers aprendan desde
el principio a estudiar los sistemas de protecciones comerciales para poder crear otros nuevos
con meyor seguridad o bien mejorar los existentes e implementarlos en los futuros programas
en vez de andar publicando cracks en internet, por que eso sí es ilegal. Entonces podriamos
decir que existen crackers buenos y malos, de los buenos por suerte hay una buena cantidad,
pero tambien hay muchos de los otros que quizas muchos de ellos tienen muy malas
intenciones como la creacion de virus para ocacionar daños. El buen cracker puede considerar o
no como "enemigo" a estos tipo de crackers, pero a diferencia del bueno, el malo tiene como
enemigo Nº1 los autores de los programas.

Quién puede ser cracker?

Es común ver que muchas personas creen ser crackers por el solo hecho de bajar un crack
publicado de internet para registrar un shareware y probablemente luego venderlo. Ellos creen
que esa acción es crackear, pero es un pensamiento erroneo, nosotros los crackers los vemos a
ellos como verdaderos ignorantes. Entonces si ellos creen ser crackers, que queda para el autor
del crack? Ambas partes se consideran complices de la pirateria lo cual no es bueno.
Una persona debe reunir ciertos requicitos y cualidades para poder ser cracker, acá muestro los
mas importantes:

- Conocimientos de Software y Hardware


- Conocimientos de programacion en general
- Conocimientos básicos de Assembler (Impresindible)
- Muchas ganas e interés
- Mucha dedicación y esfuerzo
- Mucha paciencia y tiempo

Un cracker no se hace de un dia para el otro, esto puede llevar meses e iclusive años. Para ser
bueno eso depende, pueden ser otros años mas, y para ser profesional... bueno, mejor
cambiemos de tema.

Qué hay de las protecciones de software?

La extraordinaria cantidad de programas que han sido crackeados, la mayoría fueron los
programadores quienes hicieron el sistema de protección. El resto han sido los mismos crackers
quienes lo programaron, y quien mejor si no entonces? estas protecciones presentaban gran
dificultad para desprotegerlos, aunque se han visto programas que son casi imposible
crackearlos y solo un cracker puede hacer un sistema asi, pero como ya sabemos nada es
imposible, no existe 100% seguridad. Pero igualmente con esto logramos que las empresas
desarrolladoras de software contraten a un buen cracker para proteger su software. También en
internet hay muchas empresas de seguridad informática que están conformadas principalmente
por crackers y hackers que prestan ese tipo de servicios y venden licencias de software con
sistema proteccion incluida.
Existen infinidades de maneras de proteger programas, las mas comunes de encontrar en los
programa son los siguientes:

Tiempo de uso limitado:


El programa puede caducar después de un período de tiempo determinado por el programador
desde la fecha de instalación si no se registra el programa. Se suele limitar a minutos, horas,
dias y meses.

Cantidad de ejecuciones limitadas:


El programa caduca luego de haberlo ejecutado una cantidad determinada de veces despuás de
su instalacion si no se registra.

Numero de serie:
Esto es lo mas comun encontrar, existen de dos tipos, números de serie fijos o variables, éste
ultimo se genera en la mayoria de los casos en base a algo, como por ejemplo en funcion del
nombre de usuario, organizacion, etc. de esta manera se consigue un serial diferente y único
para cada cliente o usuario. Pero también se suelen generar en función al nombre de la PC, del
número de serie de disco o de algun otro componente del equipo. Y por último tenemos los
números aleatorios, éstos son los más dificiles de crackear.

Mensajes molestos y/o nags:


Esto tambien es bastante común, son ventanas que pueden aparecer al inicio del programa o al
final, o en alguna accion por parte del usuario en donde informa que se encuentra ante una
copia no registrada o algun otro mensaje relacionado a la protección. Estos mensajes
desaparecen al registrar.

Funciones desabilitadas:
Esto le dá a un shareware una escencia de que estamos ante una Demo pero no lo es en
absoluto, generalmente deshabilitan funciones importantes de la aplicación, como por ejemplo:
abrir, guardar, importar, exportar, imprimir, grabar, etc. Cuando registramos se habilitan todas.

CD-ROM:
Esta es la mas usada por los videos juegos. Debemos insertar el disco para poder jugarlos.
Aveces hay juegos que están completamente instalados en el disco rigido pero nada más por
seguridad nos piden el CD, otros realmente requieren archivos del mismo para su
funcionamiento.

Archivos llave:
Es algo parecido al anterior pero funcionan de muchas formas diferentes dependendiendo de
las habilidades del programador.

Anti-herramientas cracking:
Estas son muy efectivas si se utilizan técnicas novedosas o desconocidas para los crackers. Se
pueden aplicar anti-depurador , anti-desensamblador, anti-monitores de registros o archivos,
api, etc. Tambien anti-modificacion del ejecutable que seria algo como anti-editores
hexadecimales.

Ejecutable comprimido y/o encriptado:


Esto también es muy efectivo si no se usan técnicas genericas. Por ejemplo con la compresion
logramos disminuir el tamaño del ejecutable impidiendo que pueda ser desensamblado y
también ocurre lo mismo con la encriptación. Pero tiene sus desventajas, con un depurador
podemos ver el codigo en memoria ya descomprimido o desencriptado y se puede trabajar
sobre él. Hay programas genericos que permiten descomprimir o desencriptar ejecutables para
dejarlos tal y como lo vemos en memoria para poder aplicar parches.
Qué herramientas se utilizan?

Para crackear no se necesitan tantas herramientas, pero las hay segun sea el caso, a
continuación nombraré y describiré las principales:

Depurador:
(En inglés Debugger) Es un programa que en realidad ha sido creado para solucionar errores o
bugs de otros programas. Permite ver instrucción por instrucción en assembler que ejecuta el
microprocesador en memoria durante la ejecución del programa y además nos permite poner
puntos de parada (BreackPoints) en cualquier parte del código durante la ejecución. Podemos
editar en forma temporal la memoria, los registros y las instrucciones para alterar su
comportamiento. Ejemplo: SoftICE, TRW2000.

Desensamblador:
(En inglés Disassembler) Es un programa que nos permite ver el código de un ejecutable en
assembler e interactuar con él. Podemos ver referencias de texto, menúes y cuadros de
dialogo, funciones importadas y exportadas del programa desensamblado. Ejemplo: W32Asm,
IdaPro.

Editor Hexadecimal:
Con este programa podemos editar los bytes en hexadecimal de las instrucciones de cualquier
ejecutable o archivo. Con esto hacemos los parches. Ejemplo: UltraEdit, Hview, HexWorkshop,
etc.

Monitor de Archivos:
Este programa se encarga de mostrarnos secuencialmente en tiempo real los archivos que
estan siendo manejados con operaciones de entrada y salida (I/O) y por que programa esta
siendo utilizado. Ejemplo: FileMon.

Monitor de Registro:
Este programa es similar al anterior con la diferencia de que se refiere al registro de Windows.
Ejemplo: RegMon.

Monitor de Funciones API:


Este otro programa también es similar a los anteriores, nos permite espiar las funciones API
utilizadas por un determinado programa en tiempo de ejecucion. Ejemplo: APIS32.

Descompresor:
Es un programa que sirve para descomprimir ejecutables comprimidos por algun compresor.
Ejemplo: ProcDump.
Todas las herramientas se pueden encontrar en internet pero como toda herramienta antes de
usarla por primera vez, debemos aprender a utilizarlas correctamente, hay cientos de manuales
dedicados a las mas importantes, sobre todo el SoftICE que es muy dificil entenderlo. Como ya
se habran dado cuenta necesitamos tener conocimientos de assembler para utilizarlas, por lo
tanto busquense un buen manual para aprender.

Un pequño ejemplo práctico

Un programa es un conjunto de instrucciones que al ejecutarlo se cargan en memoria y éstas


son ejecutadas una por una por el microprocesador. Muchas instrucciones impiden que se
ejecuten otras como las instrucciones condicionales. Citaré un ejemplo un shareware cualquiera
que hay que registrar por con un número de serie generado en base al nombre, si no
introducimos el número correcto nos mostrará un mensaje de registración incorrecta. Qué
ocurre en las instrucciones? Lo que aquí sucede es que hemos entrado a las rutinas de
comprobación del serial del programa, que compara nuestro número de serie introducido con el
número correcto, si son distintos muestra el mensaje de error y si son iguales nos muestra el
de felicitacion y registra el programa. Saber assembler es fundamental para el crackeo, es un
lenguaje de bajo nivel y practicamente el mas dificil de aprender. Ahora observaremos un
pequeño ejemplo del algoritmo que hablamos representado en dicho lenguaje:

0001 push eax <- Almacena nuestro número en el registro EAX


0002 mov ecx, 0123 <- Mueve el serial correcto al registro ECX
0004 cmp eax,ecx <- Compara nuestro serial con el verdadero
0005 jne 0008 <- Si son distintos nos muestra mensaje de error

Este sistema es uno de los mas sencillos y faciles de crackear que nos podemos encontrar,
aunque casi no quedan de esos. Para crackearlo es muy facil, se pueden modificar varias cosas,
pero normalmente se acostumbra a invertir el salto condicional JNE que salta a la direccion
0008 donde esta el mensaje de error si EAX y ECX no son iguales, por el salto JE que salta si
son iguales para que continue ejecutandose la siguiente linea y con esto cuando registremos el
programa, nos aceptará cualquier número de serie como válido, salvo que pongamos el serial
real.

Palabras finales

Con esto ya concluimos con este manual. La teoria necesaria para el cracking propiamente
dicho merecen tutoriales especificos para temas en particular. Para los que se quieren iniciar,
como ya he dicho, deben como primera medida aprender lo básico de assembler, aprender a
usar las herramientas y luego leer tutoriales prácticos de crackeo para despues comenzar a
practicar. Esas serían las pautas organizadas para que una persona se forme como cracker. Pero
siempre recomiendo leer muchos manuales y tutoriales, muchisima práctica y entusiasmo si de
verdad queres progresar.

S-ar putea să vă placă și