Sie sind auf Seite 1von 4

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 ingeniera inversa. Hemos escogido para ello uno de los programas especficamente dedicados a los newbies (principiantes), que, en este caso, consiste en crackear un programa protegido con un nmero de serie. 1.- OBJETIVO Programa: Compaa/Autor: Proteccin: Nivel de Dificultad: URL descarga: Crackme2 (v2.0) Cruehead Serial Nivel 1 (para newbies que comienzan) http://karpoff.welcome.to/ (Lo podis descargar en la Leccin Ricardo Narvaja)

20

de

2.- NUESTRA TCTICA Intentaremos buscar como alterar el salto condicional que nos lleva de la zona CHICO MALO a la de CHICO BUENO. Los pasos que seguiremos sern 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 nmeros hexadecimales que nos llevan a las dos zonas. Modificar con el ULTRAEDIT los nmeros hexadecimales que nos lleven a registrar el programa (sirve cualquier otro editor hexadecimal).

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

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. Tambin puede hacerse sin hacer una copia del archivo en cuestin, 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 nmero de serie. Si introducimos el nmero correcto nos registraremos, sino, nos dir que no hemos tenido suerte. Salvo que seamos adivinos, lo ms 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 nmero 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 botn STRING REFERENCES (el segundo botn por la derecha) y clickeamos dos veces sobre el mensaje NO LUCK THERE, MATE!. El W32Dasm nos mostrar una lnea en azul: * Possible StringData Ref from Data Obj -> No luck there, mate! :00401357 :0040135C 6869214000 FF7508 push 00402169 push [ebp+08]

Un poquito ms arriba encontraremos la referencia que nos interesa: (una llamada a la direccin 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 despus a GOTO CODE LOCATION. Tipeamos la instruccin que nos interesa, en este caso 00401243. El W32Dasm nos muestra lo siguiente: * Reference To: USER32.DialogBoxParamA, Ord: 0000h :0040121E :00401223 :00401226 :00401228 :0040122D :00401232 :00401237 :0040123C :0040123F :00401241 :00401243 E84D020000 83F800 74BE 687E214000 E833010000 687E214000 E87C010000 83C404 84C9 7407 E801010000 Call 00401470 cmp eax, 00000000 je 004011E6 push 0040217E call 00401365 push 0040217E call 004013B8 add esp, 00000004 test cl, c1 je 0040124AA 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 nmero 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 nmero, vayamos siempre a la zona de CHICO BUENO. Cmo 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 :00401243 :00401248 7407 E801010000 EB9C je 0040124AA call 00401349 jmp 004011E6

Bastar cambiar el 74 por EB para que el programa funcione con cualquier nmero de serie que introduzcamos. Para ello necesitamos utilizar el ULTRAEDIT. Abrimos el ULTRAEDIT y despus FILE y OPEN. Abrimos el archivo CRACKME2. El ULTRAEDIT nos muestra las ordenes en hexadecimal del programa. Ahora presionamos SEARCH y despus vamos a FIND. Vamos a buscar la cadena de nmeros 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 ms de la siguiente: 74 07 E8 01 01. Con estos sern suficientes. ULTREDIT nos muestra en azul la cadena que hemos buscado. Nos situamos en el 74 y lo cambiamos por EB. Despus 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 ejecucin. Cerradlo y guardar los cambios que hemos hecho. Por eso os deca 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 nmero cualquiera y ... GREAT WORK, MATE!. NOW TRY THE NEXT CRACKME!. FUNCIONA!!. Ahora que sabemos como crackear los saltos condicionales hemos de seguir intentndolo con otros programas. A por ellos, que son pocos y cobardes ...!!. 5.- AGRADECIMIENTOS Como dice el refrn: Es de bien nacidos el ser agradecidos. Por eso quiero dar las gracias a quienes con sus enseanzas han conseguido que haya podido crackear mi primer programa: Ricardo Narvaja. No dejis de leer su Curso de Crackeo para newbies. Lo podis encontrar en la web de Karpoff (http://karpoff.welcome.to/). Gracias por tu ayuda. Mr. Nobody. Tampoco os podis perder su Curso otoal de crackeo. Lo podis encontrar en http://decada.hypermart.net/crack/files/coctodo.zip.

6.- DESPEDIDA Podis seguir intentando crackear programas en la siguiente direccin: http://www.elitecoding.net/~lucifer48/tut-crkme.html. Intentadlo con los programas de nivel 1. Bueno, verdad?. para ser mi primer tutorial no ha salido mal del todo,

Hasta el prximo 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. Despus de descubrir cuales son los bytes que hemos de modificar hemos utilizado ULTRAEDIT. Sin embargo, tambin es posible crackear el programa sin utilizar un editor hexadecimal. Utilizaremos el programa RISC PROCESS PATCHER para crear nuestro propio crack distribuible. Si no sabis utilizar este programa os recomiendo que os leis previamente la Leccin 4 del Curso de crackeo para newbies de Ricardo Narvaja (lo encontrareis en la web de Karpoff cuya direccin esta al inicio de este tutorial). No puedo ni mejorar ni aadir nada de lo que all se explica, as que nicamente os doy la solucin 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 haramos con cualquier editor hexadecimal. La princiapl ventaja que tiene su utilizacin es que carga el ejecutable y espera a la descompresin 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: O=crackmakkakko.exe: P=401241/74/EB: $ ;end of script ; PROCESS TO PATCH ; LOADER TO CREATE ;

Ahora que hemos hecho el crack lo podemos distribuir. Seguid aprendiendo ... Makkakko. Julio 2.002.

Das könnte Ihnen auch gefallen