hacker


Ingresar con nombre de usuario, contraseña y duración de la sesión
| Portal Hacker | Editorial | Descargas | Ezine |
Inicio Ayuda Ingresar Registrarse
09 de Julio de 2008, 04:10:39
Noticias: Te consideras bueno en C++?
Para ver este enlace Registrate o Inicia Sesion
Aquí

+  Foros pOrtal Hacker
|-+  Hacktivismo
| |-+  Hacking (Moderadores: askatasun, HolyKnight, kamui23, - TuX -)
| | |-+  Crakeo desde cero crackme 2
0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Crakeo desde cero crackme 2  (Leído 746 veces)
maximunspider
NZ1
*
Desconectado Desconectado

Mensajes: 49



Ver Perfil
« : 26 de Junio de 2007, 08:03:50 »

Cabe aclarar que yo no hice este manual y que solo lo baje de la red,pero quería compartirlo con todos los newbies del cracking ,saludos.


MAKKAKKO LECCIONES DE CRACKING

By Makkakko


TUTORIAL 01: COMO CRACKEAR EL ARCHIVO “CRACKME2” DE CRUEHEAD

   Este tutorial está dirigido a quienes, como yo, se inician en el mundo del cracking o de la “ingeniería inversa”. Hemos escogido para ello uno de los programas específicamente dedicados a los newbies (principiantes), que, en este caso, consiste en crackear un programa protegido con un número de serie.


1.- OBJETIVO

Programa:          Crackme2 (v2.0)
Compañía/Autor:      Cruehead
Protección:         Serial
Nivel de Dificultad:   Nivel 1 (para newbies que comienzan)
URL descarga:      http://karpoff.welcome.to/
(Lo podéis descargar en la Lección 0 a 20 de Ricardo Narvaja)


2.- NUESTRA TÁCTICA

   Intentaremos buscar como alterar el salto condicional que nos lleva de la zona “CHICO MALO” a la de “CHICO BUENO”. Los pasos que seguiremos serán los siguientes:

•   Buscar con el W32Dasm las STRING REFERENCES sobre el mensaje de error que aparece al ejecutar el programa.

•   Buscar con GOTO CODE LOCATION el lugar en el que se encuentra la zona de “CHICO MALO”, porque muy cerca debe encontrarse la zona de “CICHO BUENO”.

•   Localizar las comparaciones y los saltos a las zonas “CHICO MALO” y “CHICO BUENO”. Descubrir cual es cual.

•   Verificar el salto a la zona “CHICO BUENO”.

•   Anotar los números hexadecimales que nos llevan a las dos zonas.

•   Modificar con el ULTRAEDIT los números hexadecimales que nos lleven a registrar el programa (sirve cualquier otro editor hexadecimal).


3.- HERRAMIENTAS

W32Dasm 8.93
UltraEdit 32 v9.00c   (Editor Hexadecimal, aunque vale cualquiera)
Un poco de vista


4.- APRENDIENDO A SER UN MANITAS COMO MacGYVER

   Una vez tengamos en nuestras manos el archivo Crackme2 de Cruehead hemos de hacer una copia del mismo. De este modo podremos tener abiertos al mismo tiempo el W32Dasm y el UltraEdit. También puede hacerse sin hacer una copia del archivo en cuestión, pero al abrir el ULTRAEDIT deberemos cerrar el W32Dasm. Siempre es mejor tener todos nuestros recursos a mano, para poderlos utilizar en cualquier momento y no tener que estar abriendo y cerrando programas.

   Bueno, empecemos. El programa Crackme2 está protegido mediante un número de serie. Si introducimos el número correcto nos registraremos, sino, nos dirá que no hemos tenido suerte. Salvo que seamos adivinos, lo más normal es que nos salga el segundo mensaje. Este mensaje nos ayudará a crackearlo ...

   Ejecutamos el programa. Vamos a HELP y luego a ENTER PASSWORD. Metemos un número cualquiera, el que os apetezca, y luego pulsamos OK. Como últimamente no utilizo mi bola de cristal, el programa nos muestra una ventanita en la que dice: “NO LUCK THERE, MATE!”. Este mensaje nos da una pista de por donde podemos atacar. Conseguiremos que se vuelva contra él ... ¡¡VENGANZA!!.

   Abrimos el programa Crackme2 con el W32Dasm (DISASSEMBLER – OPEN FILE TO DISASSEMBLER). Una vez abierto podemos verle las tripas al programa. Seleccionamos el botón STRING REFERENCES (el segundo botón por la derecha) y clickeamos dos veces sobre el mensaje “NO LUCK THERE, MATE!”. El W32Dasm nos mostrará una línea en azul:

* Possible StringData Ref from Data Obj -> ”No luck there, mate!”

:00401357   6869214000      push 00402169
:0040135C   FF7508      push [ebp+08]

   Un poquito más arriba encontraremos la referencia que nos interesa: (una llamada a la dirección 00401243)

* Reference by a CALL at Address:
|: 00401243

   Esta orden nos está diciendo que el mensaje de “NO LUCK THERE, MATE!” tiene una llamada en 00401243. Si está el salto que nos lleva a la zona  de “CHICO MALO” no debe de estar muy lejos el que nos lleva a la zona de “CHICO BUENO”. Así que vamos a por ella. Vamos a GOTO y después a GOTO CODE LOCATION. Tipeamos la instrucción que nos interesa, en este caso 00401243. El W32Dasm nos muestra lo siguiente:

* Reference To: USER32.DialogB oxParamA, Ord: 0000h

:0040121E   E84D020000      Call 00401470
:00401223   83F800      cmp eax, 00000000
:00401226   74BE         je 004011E6
:00401228   687E214000      push 0040217E
:0040122D   E833010000      call 00401365
:00401232   687E214000      push 0040217E
:00401237   E87C010000      call 004013B8
:0040123C   83C404      add esp, 00000004
:0040123F   84C9         test cl, c1
:00401241   7407         je 0040124AA
:00401243   E801010000      call 00401349
:00401248   EB9C         jmp 004011E6
   Las sentencias resaltadas en amarillo son las que nos interesan. Si nos fijamos bien, veremos que el programa comprueba el número que hemos introducido; si coincide vamos a 00401248 y si no coincide nos lleva a 401241. Es decir, 401241 es la zona de “CHICO MALO”, mientras que 00401248 es la zona de “CHICO BUENO”.

   La finalidad que perseguimos es que introduciendo cualquier número, vayamos siempre a la zona de “CHICO BUENO”. ¿Cómo se hace eso?. Alterando algunos bytes para caer siempre en la zona de registro.

   Si volvemos a echar un vistazo a estas instrucciones vemos:

:00401241   7407         je 0040124AA
:00401243   E801010000      call 00401349
:00401248   EB9C         jmp 004011E6


   Bastará cambiar el 74 por EB para que el programa funcione con cualquier número de serie que introduzcamos. Para ello necesitamos utilizar el ULTRAEDIT.

   Abrimos el ULTRAEDIT y después FILE y OPEN. Abrimos el archivo CRACKME2. El ULTRAEDIT nos muestra las ordenes en hexadecimal del programa. Ahora presionamos SEARCH y después vamos a FIND. Vamos a buscar la cadena de números hexadecimales que corresponden a  00401241 (zona de “CHICO MALO”) para convertirla en “CHICO BUENO”. Copiamos la cadena de esa sentencia y le agregamos algunos bytes más de la siguiente: 74 07 E8 01 01. Con estos serán suficientes. ULTREDIT nos muestra en azul la cadena que hemos buscado. Nos situamos en el 74 y lo cambiamos por EB. Después FILE y SAVE. Si ULTRAEDIT no nos deja guardar los cambios es porque o tenemos abierto el programa CRACKME2 con el W32Dasm o lo tenemos en ejecución. Cerradlo y guardará los cambios que hemos hecho. Por eso os decía que era conveniente tener una copia del programa, para usarla con el W32Dasm y que ahora no nos diese error.

   Hechos los cambios vamos a comprobar si funciona. Abrimos el programa CRACKME2 y vamos a HELP – ENTER PASSWORD. Introducimos un número cualquiera y ... GREAT WORK, MATE!. NOW TRY THE NEXT CRACKME!. ¡¡FUNCIONA!!.

   Ahora que sabemos como crackear los saltos condicionales hemos de seguir intentándolo con otros programas. ¡¡A por ellos, que son pocos y cobardes ...!!.


5.- AGRADECIMIENTO S

   Como dice el refrán: “Es de bien nacidos el ser agradecidos”. Por eso quiero dar las gracias a quienes con sus enseñanzas han conseguido que haya podido crackear mi primer programa:

•   Ricardo Narvaja. No dejéis de leer su “Curso de Crackeo para newbies”. Lo podéis encontrar en la web de Karpoff (http://karpoff.welcome.to/). Gracias por tu ayuda.

•   Mr. Nobody. Tampoco os podéis perder su “Curso otoñal de crackeo”. Lo podéis encontrar en http://decada.hypermart.net/crack/files/coctodo.zip.





6.- DESPEDIDA

   Podéis seguir intentando crackear programas en la siguiente dirección: http://www.elitecoding.net/~lucifer48/tut-crkme.html. Intentadlo con los programas de nivel 1.

Bueno, para ser mi primer tutorial no ha salido mal del todo, ¿verdad?.

   Hasta el próximo tutorial.

Makkakko. Julio 2.002




ADDENDA AL TUTORIAL 01: COMO HACER UN CRACK DISTRIBUIBLE DE “CRACKME2”

   En este tutorial hemos aprendido a crackear el programa “Crackme2” de Cruehead. Después de descubrir cuales son los bytes que hemos de modificar hemos utilizado ULTRAEDIT. Sin embargo, también es posible crackear el programa sin utilizar un editor hexadecimal. Utilizaremos el programa RISC PROCESS PATCHER para crear nuestro propio crack distribuible.

   Si no sabéis utilizar este programa os recomiendo que os leáis previamente la Lección 4 del “Curso de crackeo para newbies” de Ricardo Narvaja (lo encontrareis en la web de Karpoff cuya dirección esta al inicio de este tutorial). No puedo ni mejorar ni añadir nada de lo que allí se explica, así que únicamente os doy la solución para crear el crack.

   Deciros finalmente, que el RPP solo hace los cambios en memoria, por lo que es un cargador que no cambia bytes del programa original, tal y como haríamos con cualquier editor hexadecimal. La princiapl ventaja que tiene su utilización es que carga el ejecutable y espera a la descompresión del programa, cambiando, como ya hemos dicho, solo los valores en memoria. No os olvideis que hay que copiarlo en la misma carpeta que el archivo ejecutable.

   Las ordenes que crean el crack son:

; Crackme 2 by Cruehead
F=crackme2.exe:            ; PROCESS TO PATCH 
O=crackmakkakko.exe:       ; LOADER TO CREATE
P=401241/74/EB:            ;
$ ;end of script

   Ahora que hemos hecho el crack lo podemos distribuir.

   Seguid aprendiendo ...


   Makkakko. Julio 2.002.

Karpoff Spanish Tutor: Pagina dedicada a la divulgacion de informacion en Castellano, sobre Ingenieria Inversa y Programacion. Email "Colabora con tus Proyectos"

En línea
Páginas: [1] Ir Arriba Imprimir 
« anterior próximo »
Ir a:  


Ingresar con nombre de usuario, contraseña y duración de la sesión

Powered by SMF 1.1.5 | SMF © 2006-2008, Simple Machines LLC hacker

Juegos gratis - Articulos PHP - Juegos - Trucos - Letras - Juegos - Juegos Online