APRENDE A CRACKEAR by BJACK79

Iniciado por ARGVC, 21 Junio 2007, 05:56 AM

0 Miembros y 1 Visitante están viendo este tema.

ARGVC

1) Herramientas
1) Depurador o debugger: es un programa que permite detenerte en cada paso que realizan otros programas, creo que no expliqué bien. Un programa no es más que un conjunto de instrucciones, haz esto, haz lo otro. Entonces cuando se está ejecutando un programa y lo "depuras", por ejemplo hay una instrucción que dice: Muestra un cartel con las letras de color verde, te detienes en esa instrucción para poder cambiarla, parchearla, etc (el depurador te muestra todo en lenguaje ensamblador). El depurador más famoso que usan casi todos los crackers es el Soft Ice (de ahora en adelante le llamaremos SICE) y se pueden hacer cosas que ni siquiera te has imaginado con él.

2) Desensamblador o dissasembler: este programa convierte el ejecutable de otros programas hechos en otros lenguajes a lenguaje ensamblador. A diferencia del depurador no lo hace cuando el programa se está ejecutando, si no que cuando nosotros queramos (nosotros abrimos el ejecutable con el desensamblador y estudiamos el código todo el tiempo que queramos, a esto se le llama listado muerto).

Desensambladores: IDA pro (DOS 32 bits), W32Dasm(el que la mayoría usa).

3) Editor Hexadecimal: es un programa que te permite editar archivos de forma hexadecimal y así cambiar bytes en él, les enseñaré a convertir de decimal a hexadecimal y binario.

Editores hexadecimales: Hacker's View (DOS 32 bits), Ultraedit, y Hex Workshop.

--------------------------------------

Supongo que ya tienen todo, si lo tienen comencemos lo teórico de verdad. Por favor lean algo sobre ensamblador, es verdad, al principio todos estamos ansiosos de empezar a crackear ahora mismo y sin saber absolutamente nada ensamblador ni de ninguna de las herramientas pero lamentablemente eso no es posible:-( .Hay que tener paciencia para llegar a ser un buen cracker.

¿Qué es crackear?

Crackear, o Ingeniería Inversa (Reverse Engineering, como dicen los ingleses) se basa en reventar protecciones de software o hardware con fines intelectuales, personales, u otros, pero nunca lucrativos. De esta manera, el programa que estemos crackeando funcionará para lo que nosotros queramos y no para lo que fue diseñado.

¿Para qué crackear?

La sociedad en que vivimos da asco. Hay una enorme discriminación social. En esta sociedad la mayoría de la población está sometida al control de los que tienen dinero. El Cracking, es una forma de distribuir la riqueza entre la población. Si ves un programa en Internet que te gusta y no tienes una cuenta un un banco internacional ni nada de ello, para que esperar para tenerlo, crackéalo y publica el crack en Internet y estarás ayudando a mucha gente que vive a merced de los que son "importantes"(o sea, tienen cuentas en bancos internacionales, mucho dinero, etc).

Por supuesto que el Cracking también es para los programadores. Así podremos enseñarles que sus programas no son perfectos y tienen muchos errores tontos que podrían corregirlos. Y también enseñarles a no ser perezosos y crear buenas protecciones.

Empezaremos por aprender lo que es un sistema numérico.

Nosotros contamos el el sistema numérico de base decimal (la base de este sistema es el número 10). Esto quiere decir que el primer número formado por más de una cifra (0 1 2 3 4 5 6 7 8 9 10)de este sistema es el 10. Pero para las computadoras, este sistema no es conveniente, ya que la información se maneja codificada en forma de bits verdaderos y falsos 1=verdadero 0=falso. Esto lleva a la utilización de dos sistemas en la informática, binario (de base dos) y hexadecimal (de base dieciséis).

Convertir números de binarios a decimales:

En ensamblador nos encontramos con la necesidad de convertir números de binarios utilizados por la PC, a decimales que son los que nosotros entendemos.

Mira la siguiente tabla y puedes ir guiándote:



Como se muestra en la tabla 1+1 en binario=10. Esto es muy fácil, ya verás. Los números de binarios a decimales se pasan así:

Binario: 11011

Decimal:
1     +      2     +      0      +   8    +    16
todo esto = 27 en decimal

Nota: Hice este dibujo para que se entendiera mejor. En realidad, en la computación, el carácter ^ se utiliza para potenciar y el carácter *se utiliza para multiplicar.

Supongo que todos entienden ese dibujo. Si lo miran bien, verán que los números que están resaltados en azul, forman el número binario.

Convertir números de decimales a binarios:

Hay varias formas de hacerlo pero esta es la más fácil:

Ejemplo, el número 25 en decimal.

25/2 =12 y el resto es 1

12/2 = 6 y el resto es 0

6/2 = 3 y el resto es   0

3/2 = 1 y el resto es   1

1/2 = 0 y el resto es   1


Después tomamos el número de abajo hacia arriba y tenemos el número en binario 11001.

Números hexadecimales:

Puedes ir guiándote con la siguiente tabla:



Como ven en esta tabla, en el sistema hexadecimal los números que están formados por números de una sola cifra son: 0 1 2 3 4 5 6 7 8 9 A B C D E F. Es exactamente igual que contar en decimal pero nada más que el 9 sería el 16 (no sé si entienden). 

Para convertir de números hexadecimales a binarios se debe agrupar en grupos de cuatro bits empezando de derecha a izquierda. Después, en el último grupo, se rellenan los espacios en blanco con ceros.

Tomaremos como ejemplo el número binario 1101011

separamos en grupos de 4 bits,

110  1011

rellenamos los espacios con ceros,

0110   1011

Después tomamos cada grupo y lo transformamos a base 10(pueden fijarse en la tabla)

0110= 6   1011= 11

Pero como 611 no es correcto en el sistema hexadecimal sustituimos el 11 por su valor correspondiente en hexadecimal y obtenemos 6Bh (la h se pone para indicar que el número está en el sistema hexadecimal)

Para convertir un número de hexadecimal a binario solo es necesario invertir estos pasos.

SUPONGO que alguna vez tuvieron una clase de matemáticas y saben sumar, restar y potenciar, no, era un chiste:-) ya que si no saben, están muertos (y les sugiero que tomen clases de matemáticas)

3) Muy básico sobre ensamblador

Si ya leyeron algo sobre ensamblador, supongo que ya saben esto, pero lo escribo para los que son vagos y no se quisieron molestar en dejar este tutorial y leer otro para luego volver a este. El ensamblador o ASM es un lenguaje de programación de bajo nivel. Esto quiere decir que, a diferencia de C o C++ (lenguajes de alto nivel), mientras más programemos o más programa creemos, menos control tendremos sobre éste.

Este lenguaje les va a ayudar mucho ya que es fácil de aprender y necesitan saber de ensamblador para saber crackear.

Registros

Empezaremos por aprender (los que no leyeron sobre assembler) que son los registros. AX, BX, CX, DX (no son sólo estos, hay más pero por ahora pienso que es suficiente). Estas "palabras" son registros de datos. Éstos contienen cálculos y otras cosas que necesita un programa para ejecutarse. Es como que guardan datos temporalmente en la memoria. Los registros de 16 bits son estos (AX, BX, CX y DX) pero si trabajamos en 32 bits, o sea Windows 95, se les agrega una E delante entonces los registros de 32 bits serían así: EAX, EBX, ECX, EDX...

Si ven algo como AL y AH, no se preocupen, es que los registros se separan (BX se separa BL y BH...) Cada registro tiene un valor que se le asigna y se le modifica con algunas instrucciones en ensamblador. 

Aquí tienen los  principales saltos condicionales e incondicionales del ensamblador:



Cuando vean algún cmp por ejemplo cmp eax, ebx, quiere decir que compara, cmp proviene de "comparar". Compara el valor de los registros para luego haber un salto condicional o incondicional como 75 o 0F84 (condicionales) o un EB (incondicional).

Veamos un poco de esto en un ejecutable cualquiera de mi computadora:



(Nota importante: en Cracking desde cero para súper newbies 2 hablaremos de la pila y del código ASCII).
Antes de ver un salto condicional o incondicional, verán alguna instrucción que diga cmp xx-xx o test-xx-xx (dónde xx es un registro), estás instrucciones provienen de comparar los valores de los registros para determinar un posterior salto condicional o incondicional.

4) Familiarizándonos con las herramientas

Para crackear bien y más rápido, es necesario familiarizarse con las herramientas. Así aprenderemos a utilizarlas bien. Si bajaste un trial que expira dentro de un día y tu no has aprendido a usar bien esa herramienta, tómate tu tiempo, la crackeas, y podrás usarla todo el tiempo necesario. Pero cuando la sepas utilizar la compras, ya que habíamos dicho que el Cracking nunca se practicaba con fines lucrativos. 

W32Dasm: W32Dasm es un desensamblador, o sea, convierte el código de un programa hecho en otros lenguajes como C, C++, Delphi, Visual Basic, Pascal, etc, al lenguaje de ensamblador. 

Editor hexadecimal: el Hex Workshop y el ultraedit son muy fáciles de usar y no necesitarán leer ningún tutorial para aprender a usarlos (y que yo sepa no hay ninguno). El Hacker's View (HIEW) es más complicado ya que es de DOS y hay una cantidad de teclas para memorizarse, F1, F2, F7....y muchas más. Recomiendo que si eligieron el HIEW, se lean algún tutorial sobre él.encuentren el editor hexadecimal que más les guste.

Soft Ice: este programa si es muy difícil llegar a conocerlo todo. No podrán hacer absolutamente nada si no leyeron algún tutorial sobre él. Háganme caso, yo al principio odiaba al SICE, con esa estúpida ventanita de DOS, pero ahora que aprendí a usarlo, me parece que es una maravilla. Cuando lo instales el SICE (o Soft Ice, como le quieran llamar) deberás pasar por las siguientes configuraciones:

1) Número de serie: si bajan el SICE y viene en un zip, posiblemente venga con un archivo en formato txt llamado sn, ahí estará nuestro número de serie. Si no viene con un archivo llamado sn, puede venir con un archivo, llamado léame, leer o sino un archivo nfo también puede estar el serial en estos archivos.

2) Tarjeta de video: el SICE detectará tu tarjeta de video cuando oprimas el botón test. Como en mi caso (no detectó mi Diamond Viper 770), si no es así, selecciona la tarjeta Standar Display Adapter VGA.

3) Mouse: en mi caso, cuando instalé el SICE por primera vez, movía el mouse y no me andaba, si no que me aparecían en la parte de arriba los carteles que dicen copy, paste, copy&paste, display, un-assemble, what y previous. Lo peor era que no se podía seleccionar nada en los carteles, hacían como intermitencia cada vez que movía el mouse. Si esto les pasa, en la instalación, pongan cómo que están usando Microsoft Intelli Mouse y a ver si les anda.

4) Modificación de tu AUTOEXEC.BAT: si no sabes lo que es el AUTOEXEC.BAT puedes mandarme un mail y te lo diré.

@ECHO OFF

SET PATH=C:\\WINDOWS;C:\\WINDOWS\\COMMAND

SET TEMP=C:\\TEMP

goto %config%

:SICE

C:\\PROGRA~1\\SOFTICE\\WINICE.EXE

goto common

:NORM

goto common

:DOS

C:\\MOUSE\\MOUSE.EXE

mode con codepage prepare=((850)

C:\\WINDOWS\\COMMAND\\ega.cpi)

mode con codepage select=850

keyb gr,,C:\\WINDOWS\\COMMAND\\keyboard.sys

:common


Modificación de tu CONFIG.SYS:

[MENU]

MENUITEM NORM,Windows 9x

MENUITEM SICE,Windows 9x con SoftICE

MENUITEM DOS,MS-DOS

MENUDEFAULT NORM,2

[NORM]

[SICE]

[common]

LASTDRIVE=Z

FILES=60

device=C:\WINDOWS\COMMAND\display.sys con=(ega,,1)

[DOS]

FILES=60

Country=049,850,C:\WINDOWS\COMMAND\country.sys


5)Cuando esté instalado lanzar Symbol Loader: deberás lanzar el "symbol loader", ir al menú edit, luego a SoftICE initialization settings. en donde dice "Initialization string" debes poner X;wl;wr;wd7; code on;, y en donde dice "History Buffer size (KB)" debes poner 512.

6)Modificación de winice.dat: con cualquier editor de texto debes abrir el archivo "Winice.dat". Verás que hay unas cosas que dicen más o menos así, ;EXP= , en todos los ;EXP=, deberás quitarle el ; que está delante para que quede EXP=. Si no entiendes bien o piensas que estás haciendo todo mal, mándame un mail que te doy el Winice.dat ya modificado.

7) Deben reiniciar el equipo para obtener una actualización completa de los cambios.

Recomiendo que si no leyeron nada sobre el SICE y lo tienen instalado y configurado nunca presionen ctrl+d ya que con estas teclas se abre el SICE. Les digo esto para que no les pase lo que me pasaba a mi, que estaba escribiendo rápido, iba a poner una d mayúscula y al apretar shift el dedo se me corría y apretaba ctrl. Después tenía que reiniciar el equipo porque no sabía cómo salir del SICE (se sale con ctrl+d, como se entra) y así se me perdían los trabajos que estaba haciendo!!!:-**para modificar los archivos de inicio pués entrar a mi sección de tools.

autor: BJACK79

Nitr0k1ller

Deberia tener la decencia al menos de citar a Estado+Porcino por utilizar literalmente parte de su material

Saludos...

tena

Parte?
Buen trabajo con la recopilacion.

Saludos

akiles500

hola soy nuevo en este foro y quisiera saber un cosa.Quiero quitar la nag-screen de un programa(gameex) pero el exe viene empaquetado con el pelock-nt v2.01,y no puedo trabajar con el hasta descomprimirlo me he bajado el unpack peunlock-nt me podrias decir como se usa necesito el windows 98 porque con el xp no me hace nada un saludo a todos

Devil Dara

sme gusta este tuto eh aprendido algunas cosas solo las que entiendo
pero algunas cosas no entendi bien ya que las imagenes ya se vencieron y no pude ver los cuadros, sabes aprenderian mejor si harias un video en youtube
si te tomaras tu tiempo y las molestias de hacerlo parte por parte ya que es mu largo  y costoso esxplicarlo no crees esa es mi idea :D Saludos
Lema Devil Ate      
Por mas que nos tumben
nos pondremos de pie y cada caida nos hara mas fuertes

karmany

Ese manual queda un poco obsoleto, ya si observas, habla solo de los registros a 16 bits y ni siquiera se habla de OllyDBG que es el que yo te recomiendo.

Te invito a que leas los tutoriales de Ricardo Narvaja con OllyDBG 1.10 desde cero. Seguro que aprenderás muchísimo.
http://ricardonarvaja.info/WEB/INTRODUCCION%20AL%20CRACKING%20CON%20OLLYDBG%20DESDE%20CERO/

.:UND3R:.

No sé que decir con esto, entras a un foro de ingeniería inversa y nos vienes a enseñar a crackear, más que a crackear a presentar un tutorial algo obsoleto y que peor aun creo que no es tuyo, frente a eso sobre pasas un tutorial de excelencia como lo es el realizado por Ricardo Narvaja. Creo que el motivo es por el simple hecho de que quieres eliminar una nag, podría haber sido más fácil pedir directamente ayuda con un título apropiado. Pero de todas maneras se entiende, quizás eres nuevo, te sugiero que antes de postear algo veas los post que contienen todas las nociones básicas para poder introducirse en el área del cracking, principalmente el F.A.Q en donde encontrarás todo lo necesario para poseer una base sólida de esta arte:

http://foro.elhacker.net/ingenieria_inversa/faq_iquesteres_nuevo-t345798.0.html

Bienvenido al foro, espero que no te tomes a mal lo comentado, ha sido una crítica de carácter constructiva, saludos.

Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)