Vous êtes sur la page 1sur 31

Cracking desde cero para sper newbies Hola!!!

Nos vemos una vez ms, esta vez, mi segundo tutorial y espero que no sea el ltimo!!!. Como siempre, si algo no queda bien ex plicado hganmelo saber a dek_oin@hotmail.com y les contestar cuanto antes. Tambin pueden contactarme por si quieren que modifique algo del tutorial para que se entienda mejor o si quieren que agregue temas. Introduccin Bueno, este tutorial est dedicado a los qu e no tienen ningn conocimiento de lo que es crackear o Ingeniera Inversa. Este tutorial lo hago de acuerdo a la manera en que yo entend las cosas cuando recin empezaba, a ver si les resulta ms fcil aprender as. T e mas: 1)Qu necesitamos? 2)Herramientas 3)Crackear y los sistemas numricos 4)Muy bsico sobre ensamblador 5)Familiarizndonos con las herramientas 6)Nuestro primer crack 7)Recomendaciones 8)Despedida y agradecimie ntos

1) Qu necesitamos? Para esto de la Ingeniera Inversa se necesitan fundamentalmente las siguientes cosas: 1)Si quieren hacerse las cosas ms fciles para empezar, algn conocimiento de ensamblador, ste es un lenguaje de programacin de bajo nivel. Cuanto ms sepan mejor y ms rpido crackearn (para empezar, les recomiendo que lean el tutorial de Pr@fEsOr X sobre ensamblador que est muy bueno) 2)Cuando se llega a cierto nivel, a veces la ayuda de otro/s cracker/s ms experto/s 3)Ganas de aprender. No es leer los tutoriales sin entender nada y hacer los cracks sin saber lo que hicimos, es estudiar y c omprender el funcionamiento del programa. 4)Herramientas 2) 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 ms que un conjunto de instrucciones, haz esto, haz lo otro. Entonces cuando se est ejecutando un programa y lo "depuras", por ejemplo hay una inst ruccin que dice: Muestra un cartel con las letras de color verde, te detienes en esa instruccin para poder cambiarla, parchearla, etc (el depurador te muestra todo en lenguaje ensamblador). El depurador ms famoso que usan casi todos los crackers es el Soft Ice (de ahora en adelante le llamaremos SIC E) y se pueden hacer cosas que ni siquiera te has imaginado con l. Otros depuradore s: tr (ahora est el TRW2000 que est bastante bueno), SICE (que lo utilizan casi todos los crackers), Debug( lo tienen todas las PC, slo abre el DOS, escribe Debug aprieta enter y ya ests en el, no lo recomiendo). 2) Desensamblador o dissasembler: es te 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 ejecutabl e con el desensamblador y estudiamos el cdigo todo el tiempo que queramos, a esto se le llama listado muerto). Desensambladores: IDA pro (DOS 32 bits), W32Dasm(el que la mayora usa y mi preferido), Sourcer 7, y muchos ms. 3) Editor Hexadecimal: es un programa que te permite editar archivos de forma hexadecimal y as cambiar bytes en l, les ensear a convertir de decimal a hexadecimal y binario. Editores hexadecimales: Hacker's View (DOS 32 bits), Ultraedit, y Hex Workshop, mi preferido. Creo que esto es todo ya que pienso que al principio no necesitarn herramientas como el Frogs Ice(programa que se usa con los ejecutable s que tienen mtodos de detectar cuando el SICE est corriendo, y se usa para "esconderlo". Estas herramientas las pueden encontrar en la pgina de http://www.crackstore.com/ , http://w3.to/protools , y si falta alguna fjate en otros tutoriales o en las pginas de TNT cracking team, kUT, Wkt, en la de karpoff, por supuesto en la de mi nuevo grupo, K-FoR y otras que hay millones de links. 3) Crackear y los sistemas numricos Supongo que ya tienen todo, si lo tienen comencemos lo terico de verdad. Por favor lean algo sobre ensamblador, es verdad, a l 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 Ingeniera 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 fu ncionar para lo que nosotros queramos y no para lo que fue diseado. Para qu crackear? La sociedad en que vivimos da asco. Hay una enorme discriminacin social. En esta sociedad la mayora de la poblacin est so metida al control de los que tienen dinero. El Cracking, es una forma de distribuir la riqueza entre la poblacin. Si ves un programa en Internet que te gusta y no t ienes una cuenta un un banco

internacional ni nada de ello, para que esperar para tenerlo, crackalo y publica el crack en Internet y estars 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 tambin es para los programadores. As podremos ensearles que sus programas no son perfectos y tienen muchos errores tontos que podran corregirlos. Y tambin ensearles a no ser perezosos y crear buenas protecciones. Empezaremos por aprender lo que es un sistema numrico. Nosotros contamos el el sistema numrico de base decim al (la base de este sistema es el nmero 10). Esto quiere decir que el primer nmero formado por ms 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 informacin se maneja codificada en forma de bits verdaderos y falsos 1=verdadero 0=falso. Esto lleva a la utilizacin de dos sistemas en la informtica, binario (de base dos) y hexadecimal (de base diecisis). Convertir nmeros de binarios a decimales: En ensamblador nos enc ontramos con la necesidad de convertir nmeros de binarios utilizados por la PC, a decimales que son los que nosotros entende mos. Mira la siguiente tabla y puedes ir guindote: Decimal 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Binario 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111

Como se muestra en la tabla 1+1 en binario=10. Esto es muy fcil, ya vers. Los nmeros 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 computacin, el carcter ^ se utiliza para potenciar y el carcter *se utiliza para multiplicar. Supongo que todos entienden ese dibujo. Si lo miran bien, vern que los nmeros que estn resaltados en azul, forman el nmer o binario. Convertir nmeros de decimales a binarios: Hay varias formas de hacerlo pero esta es la ms fcil: Ejemplo, el nmero 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 Despus tomamos el nmero de abajo hacia arriba y tenemos el nmero en binario 11001. Nmeros hexadecimales: Puedes ir guindote con la siguiente tabla: Decimal 1 2 3 4 5 6 7 8 9 10 11 12 13 Hexadecimal 1 2 3 4 5 6 7 8 9 A B C D

14 15 16 17 18 19 20 21 22

E F 10 11 12 13 14 15 1A

Como ven en esta tabla, en el sistema hexadecimal los nmeros que estn formados por nmeros 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 ms que el 9 sera el 16 (no s si entienden). Para convertir de nmeros hexadecimales a binarios se debe agrupar en grupos de cuatro bits empezando de derecha a izquierda. Despus, en el ltimo grupo, se rellenan los espacios en blanco con ceros. Tomaremos como ejemplo el nmero binario 1101011 separamos en grupos de 4 bits, 110 1011 rellenamos los espacios con ceros, 0110 1011 Despus 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 6 Bh (la h se pone para indicar que el nmero est en el sistema hexadecimal) Para convertir un nmero de hexadecimal a binario sol o es necesario invertir estos pasos. SUPONGO que alguna vez tuvieron una clase de matemticas y saben sumar, restar y potenciar, no, era un chiste: -) ya que si no saben, estn muertos (y les sugiero que tomen clases de matemticas) 4) Muy bsico 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 mol estar en dejar este tutorial y leer otro para luego volver a este. El ensamblador o ASM es un lenguaje de programacin de bajo nivel. Esto quiere decir que, a diferencia de C o C++ (lenguajes de alto nivel), mientras ms programemos o ms programa creemos, menos control tendremos sobre ste. Este lenguaje les va a ayudar mucho ya que es fcil de aprender y necesitan saber de e nsamblador para saber crackear . Registros Empezaremos por aprender (los que no leyeron sobre assembler) que son los registros. AX, BX, CX, DX (no son slo estos, hay m s pero por ahora pienso que es suficiente). Estas "palabras" son registros de d atos. stos contienen clculos 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 seran 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 v alor que se le asigna y se le modifica con algunas instrucciones en ensamblador. Aqu tienen los principales saltos condicionales e incondicionales del ensamblador: Hexadecimal: 75 o 0F85 74 o 0F84 EB 90 77 o 0F87 0F86 0F83 0F82 0F82 0F83 0F86 0F87 0F8F 0F8E 0F8D 0F8C ASM: jne je jmp nop ja jna jae jnae jb jnb jbe jnbe jg jng jge jnge Significa: salta si no es igual salta si es igual salta directamente a..... ningn funcionamiento (No OPeration) salta si es superior salta si no superior salta si es superior o igual salta si no est sobre o igual salta si est debajo salta si no est debajo salta si est debajo o igual salta si no est debajo o igual salta si es mayor salta si no es mayor salta si es mayor o igual salta si no es mayor o igual

0F8C 0F8D 0F8E 0F8F

jl jnl jle jnle

salta si es menor salta si no es menor saltan si es menor o igual saltan si no es menor o igual

Cuando vean algn 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: :00402BB1 6A28 push 00000028<-----Mete 28 en la pila :00402BB3 50 push eax<----------Mete EAX en la pila. :00402BB4 8BCD mov ecx, ebp<------EBP y ECX ahora valen lo mismo :00402BB6 FF523C call 00436E04<-----Llama a la instruccin ubicada en la direccin 00436E04 :00402BB9 83F828 cmp eax, 00000057<-Compara el valor de EAX con 28, en ASCII, la W :00402BBC 0F8593010000 jne 00402D55<------Si no son equivalentes nos vamos a la direccin 00402d55 :00402BC2 8B442440 mov eax, dword ptr [esp+40] <----Son iguales, continuamos con esta operacin :00402BC6 83F828 cmp eax, 00000061<--Compara EAX con 61, en ASCII la a. (Nota importante: en Cracking desde cero para sper newbies 2 hablaremos de la pila y del cdigo ASCII). Antes de ver un salto condicional o incondicional, vern alguna instruccin que diga cmp xx -xx o test-xx-xx (dnde xx es un registro), ests instrucciones provienen de comparar los valores de los registros para determinar un posterior salto condicional o i ncondicional. 5) Familiarizndonos con las herramientas Para crackear bien y ms rpido, es necesario familiarizarse con las herramientas. As aprenderemos a utilizarlas bien. Si ba jaste un trial que expira dentro de un da y tu no has aprendido a usar bien esa herramienta, tmate tu tiempo, la crackeas , y podrs usarla todo el tiempo necesario. Pero cuando la sepas utilizar la compras, ya que habamos dicho que el Cracking nunca se practicaba con fines lucrativos. W32Dasm: W32Dasm es un desensamblador, o sea, convierte el cdigo de un programa hecho e n otros lenguajes como C, C++, Delphi, Visual Basic, Pascal, etc, al lenguaje de ensamblador. Editor hexadecimal: el Hex Workshop y el ultraedit son muy fciles de usar y no necesitarn leer ningn tutorial para aprender a usarlos (y que y o sepa no hay ninguno). El Hacker's View (HIEW) es ms complicado ya que es de DOS y hay una cantidad de teclas para memorizarse, F1, F2, F7 ....y muchas ms. Recomiendo que si eligieron el HIEW, se lean algn tutorial sobre l. Mi preferido es el Hex Workshop pero es mi preferido y eso no quiere decir que los est obligando a tener Hex Workshop, encuentren el editor hexadecimal que ms les guste. Soft Ice: este programa si es muy difcil llegar a conocerlo todo. No podrn hacer absolutamente nada si no leyeron algn tuto rial sobre l. Hganme caso, yo al principio odiaba al SICE, con esa estpida 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) debers pasar por las siguiente s configuraciones: 1) Nmero de serie: si bajan el SICE y viene en un zip, posiblemente venga con un archivo en formato txt llamado sn, ah estar nuestro nmero de serie. Si no viene con un archivo llamado sn, puede venir con un archivo, llamado lame, leer o sino un archivo nfo tambin puede estar el serial en estos archivos. 2) Tarjeta de video: el SICE detectar tu tarjeta de video cuando oprimas el botn 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, mova el mouse y no me andaba, si no que me aparecan en la parte de arri ba los carteles que dicen copy, paste, copy&paste, display, un -assemble, what y previous. Lo peor era que no se poda seleccionar nada en los carteles, hacan como intermitencia cada vez que mova el mouse. Si esto les pasa, en la instalacin, pongan cmo qu e estn usando Microsoft Intelli Mouse y a ver si les anda. 4) Modificacin de tu AUTOEXEC.BAT: si no sabes lo que es el AUTOEXEC.BAT puedes mandarme un mail y te lo dir. Cuando instalas el SICE, te dan la opcin de crear un autoexec.ice , modificar tu AUTOEXEC.BAT o no hacer ningn cambio. Te recomiendo que no elijas la opcin de no hacer ningn cambio si quieres que el SICE funcione: -) Ahora si, de verdad, te recomiendo que dejes que el programa de instalacin modifique tu AUTOEXEC.BAT por que si no cada vez que quieras ejecutar el SICE tendrs que salir a DOS y cargar el archivo que el programa de instalacin cre (en este cas o autoexec.ice). La otra cosa que puedes hacer es crear un bat pero cada vez que quieras ejecutar SICE tendrs que salir a DOS par a cargar tu bat. Como ustedes son newbies, no creo que sepan lo que son los bats, como se crea uno, configurarlos, ni nada de eso, as que mi direccin de coreo electrnico est abierta par a preguntas y sugerencias, cualquier cosa mndenme un mail a dek_oin@hotmail.com . 5)Cuando est instalado lanzar Symbol Loader: debers 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)Modificacin de winice.dat: con cualquier editor de texto debes abrir el archivo "Winice.dat". Vers que hay unas cosas que dicen ms o menos as, ;EXP= , en todos los ;EXP=, debers quitarle el ; que est delante para que quede EXP=. Si no entiendes bien o piensas que ests haciendo todo mal, mndame un mail que te doy el Winice.dat ya modificado. 7) Deben reiniciar el equipo para obtener una actualizacin 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 rpido, iba a poner una d mayscula y al apretar shift el dedo se me corra y apretaba ctrl. Despus tena que reiniciar el equipo porque no saba cmo salir del SICE (se sale con ctrl+d, como se entra) y as se me per dan los trabajos que estaba haciendo!!!: -(. No hablo ms porque no quiero acordarme!!!

6) Nuestro primer crack Por fin!!!!. Si nunca hicieron un crack y este es el primero, felicitaciones, podran convertirse en la nueva generacin de c rackers si ponen ganas y empeo. Detalles del programa vctima: Vctima: Toggle Disk Space v 2.0 URL: Descripcin: Tamao del ejecutable: Tipo de Proteccin: Mtodo de ataque Objetivo Dificultad Herramientas www.toggle.com Optimizar el rendimiento del disco duro 805 kb. Nmero de serie Desensamblar y parchear Simular estar registrados Newbie - Aficionado - Avanzado - Experto - lite W32Dasm y editor hexadecimal

El programa vctima, tena que ser uno de los programas de Toggle (firma que pone a nuestra disposicin muchos productos de shareware para bajar gratis y para registrarnos antes de 30 das porque si no el programa deja de funcionar, estos programas son facilsimos de crackear!!!). Recuerden que crackeamos solo para extender el perodo de prueba de un programa y para observar al mximo sus capacidades, reitero, nunca se crackea con fi nes lucrativos, si te gusta el programa CMPRALO!!!. El Toggle Disk Space es un programa que nos permite ver como est funcionando el disco duro y corregir errores en l. Si no estamos registrados, tenemos algunas limitaciones, como por ejemplo, no podemos usar la opcin de speed, etc. Lo que ms odio son esa s estpidas nag-screens que aparecen cuando abrimos el ejecutable, pidindonos que nos registremos y dndonos opciones. El Toggle Disk Space caduca despu s de 30 das de concurrida la instalacin si no nos registramos. Esta proteccin es fcil. Pero no tan f cil como otras. Si quieren aprender a hacer las cosas no hagan todo a merced de lo que dice esto. Prstenle atencin a las explicaciones y tambin razonen por ustedes mismos (es decir, pienso que si esto pasa lo otro tendra que pasar, etc). Muy bien, empezaremos con nuestro programilla. Ejecutmoslo y veamos que aparece una nag screen que nos da opciones para lo que qu eremos hacer. La nag:

Hmm, esa nag no me gusta para nada. Hagan clic en "Enter your registration code, hagan clic en ne xt y aparecer algo as:

Pongan un nombre cualquiera como por ejemplo deK_Oin en donde dice company pueden no poner nada ya que dice que es opcional y luego escriban un serial como 1234567890. Hagan clic en next y...

Nooooo!!!!!!!!!!. Parece que nuestro serial 1234567890 no funcion. Les gusta la nag y el cartel que dice que nuestro serial no es el correcto?. Pues a mi no as que vamos a eliminar todo eso. Comencemos: Ejecutemos el W32Dasm, vayamos al men Dissasembler \Open file to Dissasemble y abran el ejecutable toggleDISKSPACE.exe. Primero miren este esquema para saber para que sirven los botones de W32Dasm:

Ven el botn que est al lado de imprimir, si , el que dice referencias de cadenas, hagan clic en el. Este nos mostrar muchas cosas. Recuerdan el mensaje que nos deca que no habamos introducido un serial correcto, era "The registration information that you have entered is not valid. Please comfirm that you have entered the infomation correctly" Bueno, busquemos este mensaje en las referencias de cadenas (o String References) y.... aha!! aqu est, casi al final.

Haz doble clic en l para ver cuantas referencias hay sobre l pero solo hay una. Ho te preocupes por si el mensaje no est completo, es lo mismo. Cuando hagas doble clic en l, el W32Dasm nos llevar a un lugar del cdigo as: :004028C9 8BCD :004028CB E820F9FFFF :004028D0 EB0E mov ecx, ebp call 004021F0 jmp 004028E0

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses: |:004025DF(C), :00402622(C), :00402855(C) | :004028D2 6A00 push 00000000 :004028D4 6A00 push 00000000 * Possible StringData Ref from Data Obj ->"The registration information you " ->"have entered is not valid. Please " ->"confirm that you have entered " ->"the information correctly." :004028D6 685C714500 push 0045715C Si ven un poco ms arriba de "The registration...", vern que hay un texto que nos dice que el mensaje de error fue llamado por 3 saltos condicionales o incondicionales ubicados en las direcciones 004025DF, 00402622, y 00402855. Razonen... si el mensaje de error fue llamado desde 3 saltos que se ubican en 3 diferentes direcciones, que pasara si los noperamo s (con 90 que significa sin operacin) para que el programa no ejecute ninguno de esos saltos (son los que indican que el serial que introducimos es errneo ) cuando escribimos nuestro serial y pulsamos en aceptar ?. Muy bien!!!!(supongo que ya pensaste y que pensaste la respuesta correcta) el programa nos aceptar cualquier serial. Para parchear los 3 saltos hagan lo siguiente: Hagan clic en el men Goto\go to code location y escriban la direccin del salto. Empezaremos con el primes s alto 004025DF, haz clic en OK. Aqu est, hmm salto condicional, :004025D8 85C0 test eax, eax :004025DA 0F94C1 sete cl :004025DD 84C9 test cl, cl :004025DF 0F85ED020000 jne 004028D2 * Possible StringData Ref from Data Obj ->"26893278" | :004025E5 BE38724500 mov esi, 00457238

Cambimoslo por 909090909090 para que el programa no haga nada con el serial que metemos, solo llevarnos al preciado mensaje de "GRACIAS POR REGISTRARSE". Si se fijan bien en la parte inferior de la pantalla vern una cosa as:

Ven donde dice Offset. El offset es la direccin real de memoria y lo que introduciremos en el editor hexadecimal. NO DEBES PONER LOS CEROS, SON PARA QUE LOS ENTIENDA EL DESENSAMBLADOR, NI LA h QUE SIGNIFICA QUE EST EN HEXADECIMAL. Abre el Hex Workshop (yo expl icar todo como si estuvieras usando el Hex Workshop ya que ese es el que yo uso) haz clic en file \open y abre el ejecutable toggleDISKSPACE.exe. Luego haz clic en edit \goto y escribe la direccin del offset, o sea 19DF. Ah vers el salto condicional que habamos visto en el W32Dasm 0F85ED020000 y lo cambiaremos por 909090909090. Slo sita al cursor entremedio de la primera cifra y la anterior a sta y escribe los 90. No cierres el Hex Workshop!!!, recuerda que hay 3 saltos que parchear y este es solo el primero. Vuelve al W32Dasm busca de nuevo el mensaje "The registration information...." y haz doble clic en l. Estamos en el mismo lu gar que antes. Solo mira un poco ms arriba del mensaj e de error y observa: :004028C9 8BCD :004028CB E820F9FFFF :004028D0 EB0E mov ecx, ebp call 004021F0 jmp 004028E0

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses: |:004025DF(C), :00402622(C), :00402855(C) | :004028D2 6A00 push 00000000 :004028D4 6A00 push 00000000 * Possible StringData Ref from Data Obj ->"The registration information you " ->"have entered is not valid. Please " ->"confirm that you have entered " ->"the information correctly." :004028D6 685C714500 push 0045715C Ese es el segundo salto que tendremos que parchear. Haz igual que el primero, edit \goto 00402622 a ver... otro salto condicional. Mira el offset, e insrtalo en el hex workshop y cambia el salto por 90909090... Vuelve al W32Dasm. Solo nos queda un salto por parchear. Edit \goto 00402855(direccin del tercer salto). Otro salto condicional. Insertemos el offset en el hex workshop y cambiemos el salto por 9090 (el salto es 757B). Guarda los cambios desde el Hex Workshop y ejecuta toggl eDISKSPACE.exe. Todo normal, como antes, selecciona la opcin de "enter registration code" y escribe un nombre como deK_Oin en company puedes no poner nada y en Reg. code puedes poner cualquier cosa. Probemos ....cha c ha cha channnnn.........

Felicidades!!!!!!!!!!!!!!!!!!!!!!! Has hecho tu primer crack. Todos esperamos que no sea el ltimo. Cuando crackeen algo despus de hacerlo, escriban un tutorial, ya que los conocimientos hay que compartirlos si no se te pudren en la cabeza!!!. Si hay algo que odio, son las faltas de ortografa (palabra grave terminada en vocal: -). Si notan alguna, por favor contctenme a mi mail (dek_oin@hotmail.com) . Espero que este tutorial les haya sido de ayuda para todos aquellos newbies que lo leyeron. Pueden mandarme mails con preguntas o sugerencias. ESTOY BUSCANDO PROGRAMAS CON PROTECCIONES INTERESANTES. SI HAY ALGUNO QUE NO PUEDAN CRACKEAR CUANDO SU NIVEL SEA UN POCO MAYOR, MNDENME UN MAIL Y POSIBLEMENTE ESCRIBA UN TUTORIAL. 7)Recomendaciones Te recomiendo que aprendas a usar MASM y que leas los 30 tutoriales de iczelion sobre assembler que te van a ayudar mucho con la programacin en ASM (los puedes encontrar en la buensima pgina de n u M I T_o r o en la compilacin). El manual de ASM por Aesoft tambin te va a ayudar muchsimo. Si quieres seguir practicando te recomiendo los manuales de karpoff, por su puesto los siguientes captulos de Cracking desde cero para sper newbies, otros de la compilacin que estn muy buenos y cuando tu nivel sea un poco ms alto, los manuales de RAZiEL, LEiRUS y ViPER. 8) Despedidas y agradecimientos Y ya est todo, mi manual termin. Me despido, pero no sin antes dar las gracias a mi nuevo grupo K-FoR, por invitarme a ser miembro y por su apoyo. Gracias a Pr@fEsOr X por su fabulosa compilacin (no dejes de bajrtela!!!) y por el trabajo que est realizando en benficio nuestro grupo. Gracias tambin a Karpoff, por su *gran* ayuda y sus consejos, y a Txeli, por su apoyo moral y por pasarme algunos programas interesantes. Y finalmente gracias a ustedes por leer mi manual.

Y este fue el principio, Astalavista Pgina oficial del grupo K -FoR: http://pagina.de/kfor (Vistala ya!!!) Mi direccin de E -Mail: dek_Oin@hotmail.com

Cracking desde cero para sper newbies 2 Saludos a todos los newbies seguidores del cracking desde cero para sper newbies !!!! (aunque pienso que ya debera quitarle el sper porque deben tener algo en la cabeza jeje !!!). En este tutorial no explicar ningn crack, explicar cosas que un cracker tiene que conocer lo mejor po sible. Estas cosas son el registro y assembler bsi co y algo sobre el cdigo ASCII. Si no entienden algo no sigan leyendo este tutorial hasta sacarse la duda de encima, y para ello, contctenme a dek_oin@hotmail.com. Siempre respondo a todos los mails menos a los pe didos de cracks (para eso hay un montn de pginas web y adems los crackers no enseamos a la gente a ser unos llorones dependientes que solo saben mendigar!!!). ndice de los temas que trataremos: 1) De lo macro a lo micro 2) Registros 3) Ensamblador 4) El cdigo ASCII 5) El registro de windows 6) Despedida y agradecimientos

1) De lo macro a lo micro Bueno, bueno, comencemos. Cuando prendemos la computadora Windows (o Unix o Linux) se inicia. Pero, qu son Windows Unix o Linux?. Son sistemas operativos. Un sistema operativo es la base por la cual se domina el inicio de las rutinas para procesar datos en el disco du ro. Esto quiere decir que el sistema operativo permite "dominar" el procesamiento de datos en el disco duro (sin que se procesen datos nada funcionara). Los sistemas operativos son grandes programas. Generalmente se programan el lenguajes de programacin 100% orientados a objetos como C++. Dentro de poco Microsoft sacar al mercado una nueva versin del lenguaje Visual Basic que se llamar Visual Basic 7(ahora est hasta la 6) o Visual Basic 2000 que ser un lenguaje 100% orientado a objetos y que no le tendr nada que envidiar a C++ y otros lenguajes de programacin. Pienso que posiblemente los sistemas operativos s e puedan hacer en este nuevo lenguaje. Dentro del sistema operativo estn los programas que hacen que tu PC sirva para algo. Los que crearon los primeros programas vieron que ocupaban demasiado espacio, y ocupar demasiado espacio significa perder ms dinero, y por eso se crearon las dll. Dll significa Dynamic Link Library que por si no sabes ingls te digo que significa libreras dinmica de enlaces. Yo definira cada dll como un libro. Un libro de donde se sacan f unciones para ayudar a los programas para que estos no ocupen tanto espacio. Imagnate tener que crear u n cdigo para que lea cada funcin que el programa necesita para ejecutarse. Ocupa mucho menos espacio, es ms funcional y ms fcil crear las libreras de acceso dinmico. Son como bibliotecas "comunes" entre los programas ya que hay miles de programas que las utilizan (digo comunes ya que muchos programas utilizan por ejemplo la user32.dll) para ahorrar espacio y por varias razones ms. Las dlls ms comunes son: c:\windows\system\toolhelp.dll c:\windows\system\shell.dll c:\windows\system\commdlg.dll c:\windows\system\olesvr.dll c:\windows\system\olecli.dll c:\windows\system\mmsystem.dll c:\windows\system\kernel32.dll<-------Estas especialmente c:\windows\system\user32.dll <---------Estas especialmente c:\windows\system\gdi32.dll c:\windows\system\comdlg32.dll c:\windows\system\shell32.dll c:\windows\system\advapi32.dll c:\windows\system\shell232.dll c:\windows\system\comctl32.dll c:\windows\system\crtdll.dll c:\windows\system\version.dll c:\windows\system\netlib32.dll c:\windows\system\msshrui.dll c:\windows\system\msnet32.dll c:\windows\system\mspwl32.dll c:\windows\system\mpr.dll Dentro de las dlls estn las funciones API. Cuando nos aparece un cuadro de dilogo como este:

se debe a la API messageboxa de la user32.dll. Esta es la librera ms comn en el cracking. Si quieres ver todas las API que hay dentro de user32.dll abre el W32Dasm abre la user32.dll (c: \windows\system\user32.dll), haz clic en el botn de exported functions y vers las APIs que contiene la user32.dll. No hay que saberse de memoria to das las APIs ya que son ms de 2000 pero s hay que conocer la mayor cantidad posible. Como siempre, cuanto ms conozcan, mej or. Bueno creo que me fui un poco del tema aunque tienen que saber lo que mencion anteriormente. Estbamos en que dentro del sistema operativo estn los programas. Los programas no son ms que instrucciones (haz esto, haz lo otro) y cada instruccin no es ms que un conjunto de bits. Pero, donde se guardan los bits para que el programa funcione?. Los bits del programa se localizan en los ficheros. Hay algunos programas que no guardan todas s us instrucciones en nico fichero, si no en varios, un ejemplo de esto son las dll (que ya los deben tener podridos !!!). Uno de lo s ficheros ms comunes son los ficheros ini. 2) Registros Para que la computadora pueda procesar informacin es necesario que existan celdas especiales llamadas registros. Los registros son conjuntos de 8 o 16 flip flops. Un flip -flop es un disposit ivo capaz de almacenar dos niveles de voltaje, uno bajo y uno alto. No entrar en detalle e ir a lo ms importante. El nivel bajo de energa se interpreta por el procesador como apagado o 0, y el nivel alto como prendido o 1. A estos dos estados se les c onoce como bits, que son la unidad ms pequea de informacin en una computadora. A un grupo de 16 bits se le conoce como palabra, una palabra puede ser dividida en grupos de 8 bits llamados bytes, y a los g rupos de 4 bits se les llama nibbles. Los regist ros de datos principales son AX, BX, CX, DX, SI, DI, BP, SP, CS, DS, SS y ES (estos son los que recuerdo ahora, no s si me f alta alguno). Si trabajamos en 32 bits o sea Windows 95 se les agrega una E delante por lo que quedaran EAX, EBX, ECX, EDX, ESI, E DI, EBP, ESP, ECS, EDS, SS y EES. Los registros se subdividen as: EAX= 32 bits AX= 16 bits AH= 8 bits AL= 8 bits EAX es como el "padre" de 32 bits. AX es de 16 bits y a su vez se divide en AH y AL. AH significa Hight byte y AL significa Low byte. Esto quiere decir que por ejemplo si AX es 9851, entonces AH sera 98 y AL sera 51. O sea que se podra decir que AX= AH+AL. Fcil no?(por ahora...) Utilizacin de AX, BX, CX, y DX: Esto es importante cuando se trabaja en el Soft Ice para encontrar nmeros de serie vlidos ms fcilmente. Cada uno de estos registros tiene funciones especiales que es interesante conocer. Por ejemplo el registro AX es el llamado acumulador, hace que muc has operaciones tengan una forma ms corta, ya que lo especifican implcitamente. Es decir, que hay operaciones que actan sobre el registro AX en particular. BX se suele utilizar en muchas i nstrucciones como registro base, sobre todo en transferencias de datos entre memoria y procesador. CX es el registro contador, muchas instrucciones lo utilizan para hacer incrementos o decrementos automticos, para realizar bucles, etc. DX es el registro de datos, se suele utilizar para operaciones de 32 bits , para almacenar los 16 bits (o palabra) ms significativos. Utilizacin de SI, DI, BP y SP Se utilizan para acceder a memoria cuando se establece el modo de direccionamiento mediante indexacin o con punteros. SI y D I indican el ndice fuente y destino respectivame nte. BP y SP indican el puntero base y el puntero de la pila respectivamente. Ms adelante hablaremos de la pila. Estos 4 registros son de 16 bits, y no pueden ser utilizados como registros dobles de 8 bits, o sea, SI no se divide en SH ni en SL. No me voy a seguir metiendo ms en el tema porque los otros registros ya no son tan comunes. RECUERDEN QUE TODO REGISTRO DE 16 BITS S E LE AGREGA UNA E CUANDO EST EN 32 BITS Y QUE HAY ALGUNOS REGISTROS DE 16 BITS QUE NO SE DIVIDEN EN REGISTROS DE 8 BITS (AH, AH,) COMO POR EJEMPLO SI, DI, BP Y SP. Creo que los estoy confundiendo ms. Por esta razn no entrar en el tema de los flags. El manual de ASM por Aesoft te puede ayudar de manera exhaustiva en estos y muchsimos ms temas, si no lo tienes, mndame un mail a dek_oin@hotmail.com que te lo envo. 3) Ensamblador Bueno, comencemos con nuestro querido assembler. Assembler es un lenguaje de programacin de bajo nivel. Esto quiere decir qu e a diferencia de C++ o de Visual Basic, cuanto ms programemos o ms programa creemos, menos control tendremos sobre este. El ensa mblador es uno de los lenguajes de programacin que est ms cercanos al lenguaje humano. No entiendo, explcame porqu?, pues porque casi todas sus instrucciones son deriv adas del ingls como je= jump if equal o cmp=compare y hay varias ms. Esto lo conv ierte en uno de los lenguajes ms fciles de aprender. Cuanto ms sepan de assembler, ms rpido y mejor crackears. Veremos el significado de las instrucciones que he considerado ms "apropiadas" para un newbie que slo ha ledo un tutorial y que ahora se encuentra leyendo uno. La pila La pila es una caracterstica interna del 8086. Es una estructura de datos situada en la RAM. Proporciona a los programas un lugar donde almacenar datos de forma segura, pudiendo compartirlos con otros procedimientos o programas de forma cmoda y prctica. La funcin ms importante de la pila es la de mantener las direcciones de retorno en las llamadas a procedimientos e interrup ciones, as como guardar los par metros pasados a estos procedimientos. La pila tambin se utiliza para almacenamiento temporal d e datos dentro de un programa, y para muchas cosas ms que se aprenden con la prctica. La pila tiene su nombre por analoga con los montones de platos apilados (pilas de platos). Cuando un dato nuevo es introduci do en la pila, se dice que es apilado (push) debido a que se sita por encima de los dems, es decir se sita en la CIMA de la pila. Una pila opera en el orden ltimo en entrar, primero en salir, es como la "regla bsica" de la pila. Las instrucciones para manejar la pila son: PUSH---------> Guarda un dato en la pila. Decrementando SP en 2 unidades, para que apunte al nuevo elemento a introducir. Ejemplo: PUSH AX --> Apila el contenido de AX en la cima de la pila. POP----------> Obtiene un dato de la pila. Incrementando SP en 2 unidades, par a que apunte al nuevo elemento a introducir. Ejemplo: POP AX --> Desapila el contenido de la cima de la pila en el registro AX. Es decir, AX contena el valor que haba en la cima de la pila, y el puntero de pila se actualiza incrementndolo en 2. PUSHF--------->Guarda el contenido del registro de estado (FLAGS) en la pila. Decrementando SP en 2 unidades, para que apunte al nuevo elem ento a introducir. No es necesario indicar sobre qu acta esta instruccin, lo lleva implcito en su nombre PUSHF (PUSH FLAGS). POPF---------- > Introduce en el registro FLAGS el contenido de la cima de la pila. Incrementando SP en 2 unidades, para que apunte al nuevo elemento a introducir. Al igual que con la instruccin anterior, no es necesario indicar sobre qu acta esta instruccin POPF (POP FLAGS). Trata de aprender todo esto pero si no tienes buena memoria piensa que la pila es un lugar en la RAM (supongo que ya sabes to do eso) donde se guardan los datos temporalmente. Algunas instrucciones del Assembler: ADD ADD significa sumar. Suma el contenido del operando fuente al operando de destino( y almacena el resultado en este).

AND Significa "y". Esta instruccin realiza un Y lgico de los operndos y almacena el resultado en el operando de destino. Cada bit del byte o palabra(recuerdas lo que eran?) resultante se activa en 1 solo si el bit correspondiente de cada operando tambin se activa en 1. Las banderas de acarreo y de sobre flujo se limpian mediante esta operacin. O sea que: Primer trmino 0 0 1 1 Segundo trmino 0 1 0 1 Resultado 0 0 0 1

CALL CALL hace esto: 1) mete la direccin de desplazamiento de la siguiente instruccin en la pila; 2) si el procedimiento llamado se declara domo far (lejano), mete la direccin de segmento de la siguiente instruccin en la pila; 3) carga IP (puntero a instruccin) con la direccin de desplazamiento del procedimiento llamado; y 4) si el procedimiento llamado se declara como far, carga CS (segmento de cdigo) con la direccin de segmento del procedimiento llamado. La ejecucin continua entonces en la recin cargada direccin CS:IP hasta que se encuentre RET. S que al principio cuesta un poco, p ero por ahora lo nico que tienen que saber sobre esta importantsima funcin en el mundo del cracking es que es como una llamada. Llama a otras lneas de cdigo (las instrucciones del programa) para que sean ejecutadas hasta llegar a una instruccin ret que significa "retorno". CMP Proviene de compare que significa comparar. CMP se considera una instruccin aritmtica debido a que e l operando fuente se sustrae del operando destino. Sin embargo, el resultado se emplea para activar las banderas; no se almacena en ningn lugar. Se puede hacer una prueba posterio r de las banderas para el control del programa. Por ahora solo tienen que sa ber que compara. INC Incrementar: INC cambia, mediante incrementos de 1, el contenido del operando. JA Saltar si es arriba o mayor: JA ocasiona que la ejecucin de un programa se ramifique hacia la direccin del operando si la b andera de acarreo esta limp ia. Esta instruccin es funcionalmente igual que JNB o JNC. JB Saltar si es abajo o menor: Lo mismo que arriba pero si la bandera de acarreo eta activada. JBE Saltar si es abajo o igual: Lo mismo que arriba pero si esta activada la bandera de acarreo o l a de cero. JCXZ Saltar si CX=0: Lo mismo que los anteriores pero si el valor de CX=0. JE Saltar si es igual: Salta si la bandera de cero esta activada. Es equivalente a JZ. JG Saltar si es mayor. JGE Saltar si es mayor o igual. JL Saltar si es menor. JLE Saltar si es menor o igual. JMP Saltar: Salta directamente a la direccin del operando. JNA Saltar si no es arriba: Salta si esta activada la bandera de acarreo o de cero. Es funcionalmente igual que JBE. JNAE Saltar si no es arriba o igual. JNB Saltar si no es abajo JNBE Saltar si no es abajo o igual: Salta si tanto la bandera de acarreo como la de cero estn limpias. JNE Saltar si no es igual. JNZ Saltar en no cero: Salta si la bandera de cero esta limpia. Es lo mismo que JNE. JZ Saltar en cero: Salta si la bandera de cero esta activada. Es funcionalmente igual que JE. LEA Cargar la direccin efectiva. LEA transfiere la direccin de desplazamiento del operando fuente al operando de destino. El op erando de destino debe ser un registro general d e palabras.

LEAVE Salida de procedimiento de alto nivel: Deshace los cambios realizados por la instruccin ENTER. Esta instruccin se usa para alto nivel.

salir de subrutinas de lenguajes de

MOV Transferir: MOV copia el contenido del operando fuente en e l operando de destino. Ambos operndos deben tener la misma longitud. Por ejemplo mov AX, 117h (la h significa que est en hexadecimal) ahora el registro AX vale 117h MOVSB Transferir una cadena, byte por byte. Los valores de SI y DI cambian en incremento s o decrementos de 1, dependiendo de la activacin de la bandera de direccin. Normalmente, esta instruccin se usa con la instruccin REP a fin de repetir la transferencia para un mximo de bytes de CX. NEG Negar: NEG calcula el complemento a dos del ope rando de destino y almacena el resultado en ese operando. Este calculo es efectivamente igual que restar el operando de destino de 0. NOP Ninguna operacin: NOP simplemente toma espacio y tiempo y ocasiona que la UCP no haga nada en hexadecimal son los fa mosos 90. Es importantsima!!!. NOT NO lgico en bits: Invierte los bits en el operando destino (0 se convierte en 1 y viceversa) y almacena los bits invertidos (aunque pienso que ya lo deben haber entendido): Trmino 0 1 Lo invierte 1 0 en el operando de destino. Grficamente

OR Or lgico en bits: Esta instruccin realiza un O lgico de los operndos y almacena el resultado en el operando de destino. C ada bit del byte o palabra resultante se pone en 1 si uno o ambos bits correspondientes a cada operando se ponen en 1. Grficamente: Primer trmino 0 0 1 1 Segundo trmino 0 1 0 1 Resultado 0 1 1 1

POP Sacar datos de la pila: POP traslada una palabra o una palabra doble (dependiendo del tamao del operando) de la pila y la co loca en el operando de destino deseado. PUSH Coloca datos en la pila: Coloca una copia del valor del operando en la pila. RET Volver de la subrutina: Al sacar a IP de la pila, RET transfiere el control del programa de vuelta al punto en que se emiti un CALL. Si CALL fuera una llamada a un procedimiento far, tanto CS como IP serian sacados de la pila. Si RET tiene un valor de retorno especificado, la pila se a justa segn ese numero de bytes. SUB Restar: Resta el contenido del operando fuente del operando de destino y almac ena el resultado en este. TEST Probar bits: Realiza un Y lgico(recuerdas la operacin AND?, bueno, significaba Y) de los operndos, pero el resultado no s e almacena. Solo las banderas se afectan. Cada bit del byte o palabra resultante se activa en 1 sol o si el bit correspondiente de cada operando es 1. XOR O exclusivo lgico sobre bits: Esta instruccin realiza un XOR lgico de los operndos y almacena el resultado en el operando de destino. Cada bit del byte o palabra resultante se pone en 1 solo si el bit correspondiente de cada operando contiene valores opuestos. Por ahora solo tienes que saber que torna los registros en cero. Por supuesto hay cosas que no se las tienen que aprender ahora, pero las escribo para el que tenga buena memoria y quiera apr enderse todo lo que he escrito para ganar un poco de tiempo. Aqu abajo les pongo una tabla con los saltos que consider que por ahora tienen que saber, te recom iendo que la imprimas para hacer uso de ella cuando ests crackeando: Hexadecimal: 75 o 0F85 74 o 0F84 EB 90 77 o 0F87 0F86 0F83 ASM: jne je jmp nop ja jna jae Significa: salta si no es igual salta si es igual salta directamente a..... ningn funcionamiento (No OPeration) salta si es superior salta si no superior salta si es superior o igual

0F82 0F82 0F83 0F86 0F87 0F8F 0F8E 0F8D 0F8C 0F8C 0F8D 0F8E 0F8F

jnae jb jnb jbe jnbe jg jng jge jnge jl jnl jle jnle

salta si no est sobre o igual salta si est debajo salta si no est debajo salta si est debajo o igual salta si no est debajo o igual salta si es mayor salta si no es mayor salta si es mayor o igual salta si no es mayor o igual salta si es menor salta si no es menor saltan si es menor o igual saltan si no es menor o igual

Si ya tienen esta tabla de mi anterior tutorial, bien. Algo que creo que no expliqu en mi tutorial anterior y que quisiera e xplicar ahora para sacar posibles dudas es que cuando lean un tutorial sobre cracking y los nmeros como los offsets y algunos ms no son los mismos que muestra el tutorial del cracker, no se preocupen. Solo son las variaciones de memoria en los ordenadores. Tambin puede llegar a ser un cambio de versin del producto, es deci r, que el cracker haya escrito un tutorial sobre la versin 2.1 y ustedes estn con la versin 2.3, es que cambian tan poco las protecciones ltimamente !!! (o simplemente no cambian). En fin, peor para los programadores. 4) El cdigo ASCII Ya sabemos (supongo) pasar de hexadecimal a binario, hexadecimal a decimal, binario a decimal y etc. Ahora empezaremos con el cdigo ASCII. ASCII es la abreviatura de American Standard Code for Information Interchange . En este cdigo se le asigna un valor hexadecimal a cada carcter. Los valores son diferentes para las maysculas y minsculas. Por ejemplo la @ se hace con Alt+64 y yo siempre la hago de esa manera porque me resulta ms fcil y rpido. El cdigo ASCII tambin se puede utilizar para cosas muy tontas como esta:

Si ven bien, vern que puedo cambiar el texto de la nag desde el Hex Workshop, originalmente deca HEXpert for Windows 9x, he visto tutoriales sobre esto, pero no le encuentro ninguna utilidad. Para lo que tambin sirve es para elimin ar por ejemplo un texto que nos dice que tenemos que registrarnos o cosas molestas. Aqu pongo los smbolos ms usuales en el cdigo ASCII: Smbolos Nmeros Letras Minsculas Letras Maysculas Letra a b c d e Cd. ASCII 61 62 63 64 65 Letra A B C D E Cd. ASCII 41 42 43 44 45 Smbolo ? ! " Cd. ASCII A8 3F AD 21 22 Nmero 0 1 2 3 4 Cd. ASCII 30 31 32 33 34

f g h i j k l m n o p q r s t u v w x y z

66 67 68 69 6A 6B 6C 6D 6E A4 6F 80 71 72 73 74 75 76 77 78 79 7A

F G H I J K L M N O P Q R S T U V W X Y Z

46 47 48 49 4A 4B 4C 4D 4E A5 4F 50 51 52 53 54 55 56 57 58 59 5A

@ # $ % & / \ ( ) = * + < > [ ] , . ; : _

40 23 24 25 26 2F 5C 28 29 30 2A 2B 2D 3C 3E 5B 5D 2C 2E 3B 3A 5F

5 6 7 8 9

35 36 37 38 39

5) El REGISTRO de Windows Trozo del proyecto Nakarko'99 por karlitoxZ Qu es el registro de Windows? . El registro es una base de datos definida por el sistema que tanto Windows como las aplicaciones que sobre l funcionan, utilizan para guardar y obtener informacin sobre determinadas configuraciones. En l podemos encontrar desde las extensiones asociadas a cada programa, el lugar donde estn determinadas dlls, el contenido de mens desplegables, los drivers necesarios para nuestro HD y hasta las ltimas pginas web que hemos visitado. Casi un 100% de lo que en nuestro PC ocurre est grabado en el registr o, poco escapa de sus garras. La informacin que se guarda en nuestro registro es informacin en binario, esta informacin varia dependiendo de la versin de windown en uso y del hard/software que tengamos i nstalado. El registro est dentro de dos archivos , system.dat y user.dat que suelen ser de tamao aberrante (ms de 2 megas). El registro es accesible y modificable gracias al REGEDIT.EXE uno de los muchos programas "escondidos" en el directorio Windo ws (se ubica en c:\windows\regedit.exe) Estructura del registro. El registro almacena datos en forma de rbol jerarquizado, cada rama del rbol es llamada "Key" , cada "Key" puede contener " SubKeys" y entradas de datos llamadas "Values" . Para haceros una idea d e cmo es esto imaginaros "Key" como un directorio donde hay subdirectorios "Subkey" y ficheros con datos "Values". Muchas veces la presencia de una "Key" es lo nico que necesita un programa para funcionar, otras veces nos encontramos con u no o varios "S ubkeys" y/o "Values" dentro de una "Key", una "Key " puede tener tantos "S" y "V" como necesite y los "Values" pueden estar en cualquier formato. Cada "Key" tiene un nombre que consiste en 1 o ms caracteres imprimibles en formato ANSI, esto es, caractere s con valores de rango 32 -127, estos nombres no pueden empezar por " \" (backslash o antibarra) ni por " * ". Las "Key" que comienzan por un punto ( . ) estn reservadas. Cada "Subkey" slo est definida en la "Key" inmediatamente superior al nivel dond e la "Subkey" se aloja, de esto sacamos dos cosas, dentro de diferentes "Key" podemos tener "Subkeys" de nombre idntico y adems estas "Subkeys" no tienen por qu tener nada que ver, cada rama del regis tro es independiente de las dems a no ser que dentro de la rama se explique la relacin existente entre las dos. -------------------- Termina el trozo del proyecto Nakarko -------------------------Adelante, explora como funciona el registro. Fundamentalmente usaremos la rama HKEY_CURRENT_USER \software\ para crackear. Si hay un programa que no puedes crackear y expira, lo que puedes hacer es ir a la rama HKEY_CURRENT_USER \software\ encontrar el programa o en algunos casos, la marca del programa que queremos crackear, y borramos toda la informacin que encontr emos. Luego inicia el programa y si es que la informacin no qued guardada en otro lugar ms que en el registro (el da de la instalacin pudo haber quedado guardado en algn fichero, etc.) vers que "en gaaste" al programa y ahora piensa que la instalaci n se finaliz cuando tu ejecutaste el programa. Es decir, como antes tu habas borrado la informacin del registro, el progr ama necesita chequear en algn lado esa informacin para saber la fecha de instalacin o los das que le quedan a la versin de eva luacin, el programa no puede ejecutarse sin esa informacin entonces la tiene que introducir de nuevo, pero no la guarda con el da original de la instalacin porque esa fec ha fue borrada por ti, el programa "cree" que termin la instalacin cuando lo eje cutaste por primera vez luego de borrar la fecha de instalacin y dems del registro. Creo que los confund, hasta yo estoy confundido. Bueno, esto fue todo. Este es un largo texto as que debe estar lleno de errores, si los notan, por favor avsenme. Cualquier cosa que se les ocurra menos pedidos de cracks, consltenme a mi mail dek_oin@hotmail.com. Siempre contesto a todos los mails. Hablando de mails, gracias a todos por los que he recibido con elogios y dems. Eso me hace ver que mis tutoriales sirven para algo y que no estoy perdiendo el tiempo al escribirlos por lo que dentro de lo posible seg uir escribiendo ms !!!. Si quieres profundizar en assembler lee el manual de ASM por Aesoft. Si no lo tienes, lo puedes consegui r en la seleccin manuales de la pgina de karpoff o en la pgina de Txeli.

Despedida y agradecimientos Se termina todo, pero no puedo marcharme sin darle las gracias a mi nuevo grupo, K -FoR, por invitarme a ser miembro y por su apoyo. Gracias a Pr@fesor X por su fabulosa compilacin y por el trabajo que est realizando en benficio nuestro grupo. Gracias tambin a Karpoff, p or su *gran* ayuda y sus consejos, y a Txeli, por su apoyo moral y por pasarme algunos programas interesantes. Y finalmente gracias a ustedes por leer mi manual. Gracias a todos y,

Cracking desde cero para sper newbies 3 Vctima: URL: Descripcin: Tamao del ejecutable: Tipo de Proteccin: Mtodo de ataque Objetivo Dificultad Herramientas 3D Foto Studio http://www.softonic.com/Static/r_1_11611.htm o http://www.filkorn.de Si alguien le encuentra alguna cosa util a este programa, agradera que me lo comunicara. 123.456 bytes Nmero de serie Desensamblar y parchear Simular estar registrados Newbie - Aficionado - Avanzado - Experto - lite W32Dasm y Hex Workshop.

Fecha: 26/9/2000 Bueno, bueno, saludos a todos los seguidores de cracking desde cero para sper newbies!!!. En este tutorial veremos una proteccin sper estpida. An ms estpida que la del tutorial 1. Yo no s como no les de vergenza a los programadores poder crear algo as. Bueno, pero en fi n, peor para ellos. Si algo no queda bien explicado, ya saben, dek_oin@hotmail.com y listo. Introduccin Abran el programa. Hmmm esto no me gusta nada, en la parte superior de la ventana dice Unregistered Shareware -Version. Vayan al men register. Escriban un nombre por ejemplo dek_Oin y un serial cualquiera como mi preferido 123456789.

Bueno, hagan clic en OK y... cha cha cha channnn.... No, no funcion el 123456789. En estos casos ya saben que hacer. Primer ataque Desensamblemos con el W32Dasm el ejecutable stereo.exe. Siempre deben hacer una copia de seguridad del ejecutable antes de crackearlo por si algo sale mal. El mensaje era "Incorrect registration key!" recuerdan?. Hagan clic en o string references y busquen el mensaje. Aqu est!!!

Siempre deben hacer clic sobre el ms de una vez para saber si hay ms de una referencia sobre el mensaje pero slo hay una. Veamos lo que n os aparece: * Possible StringData Ref from Code Obj ->"Thanks for registering 3D FotoStudio!" | :00495F66 B82C604900 mov eax, 0049602C :00495F6B E8940EFAFF call 00436E04 :00495F70 EB3D jmp 00495FAF * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:00495EAB(C) | :00495F72 6A00 push 00000000 :00495F74 668B0D20604900 mov cx, word ptr [00496020] :00495F7B B201 mov dl, 01 * Possible StringData Ref from Code Obj ->"Incorrect registration key!" | :00495F7D B85C604900 mov eax, 0049605C :00495F82 E87D0EFAFF call 00436E04 :00495F87 A1A8F44900 mov eax, dword ptr [0049F4A8] Hasta ahora no tenemos que preocuparnos de nada porque sabemos que el mensaje de "Incorrect registration key!" est llamado d esde la direccin 00495EAB. Vallamos a esa direccin a ver que hay. Hagan clic en goto/go to code location y escriban la direccin( 00495EAB). :00495EA9 84C0 test al, al --> compara el s/n correcto con el que escribimos??? :00495EAB 0F84C1000000 je 00495F72--> si son iguales salta a la direccin 00495F72 :00495EB1 C60514324A0000 mov byte ptr [004A3214], 00 :00495EB8 8B45FC mov eax, dword ptr [ebp-04] :00495EBB 8B80C8020000 mov eax, dword ptr [eax+000002C8] Que pasara si revertimos el salto? Probemos. Abran el Hex Workshop hagan clic en edit/goto y escriban el offset del salto o sea 952AB(algo que no expliqu y que me gustara dejar claro es que el offset es la direccin real de memoria. Cambiemos el 0F84 a 0F85 y guardemos los cambio s. Tratemos de registrar el programa. Introduzcamos un nombre como dek_Oin y un serial como 123456789. OK y ...

Lo logramos!!!!!!!!!. Nos vamos todos a festejar. Vuelvo del festejo. Antes no le haba encontrado ninguna utilidad a este programa as que voy a ver si le puedo encontrar una ahora. Abro el programa y... Qu pas?. No lo entiendo. Unregistered Shareware -Version, qu es eso?. No se preocupen, es un error tpico de cuando se empieza con la Ingeniera Inversa. Lo que hicimos al cambiar ese salto, fue hacer que el programa siempre muestre la ventanita de "Thanks for re gistering 3D FotoStudio!", pero en realidad, el programa no est registrado. Por eso es que puse los ???en :00495EA9 84C0 test al, al. En realidad el programa no compara el s/n correcto con el que introducimos, lo que hace es ver si muestra el mensaje de "Thanks for registering 3D FotoStudio!" o no lo muestra. Segundo ataque Volvamos a desensamblar con el W32Dasm. Ahora busquemos la cadena Unregistered Shareware -Version en las String References y aqu est:

Hagan clic muchas veces para ver cuantas referencias hay sobre ella pero solo hay una que nos lleva a: :00495649 803D14324A0000 cmp byte ptr [004A3214], 00 :00495650 7440 je 00495692--->COMPARA SI ESTAMOS REGISTRADOS O NO :00495652 8D55F4 lea edx, dword ptr [ebp-0C] :00495655 8B45FC mov eax, dword ptr [ebp-04] :00495658 E8C382F8FF call 0041D920 :0049565D 8B55F4 mov edx, dword ptr [ebp-0C] :00495660 8B45FC mov eax, dword ptr [ebp-04] :00495663 05B8030000 add eax, 000003B8 :00495668 E83FE3F6FF call 004039AC :0049566D 8D55F4 lea edx, dword ptr [ebp-0C] :00495670 8B45FC mov eax, dword ptr [ebp-04] :00495673 E8A882F8FF call 0041D920 :00495678 8D45F4 lea eax, dword ptr [ebp -0C] * Possible StringData Ref from Code Obj ->"(Unregistered Shareware -Version)" | :0049567B BAF45D4900 mov edx, 00495DF4 Ven el ltimo salto antes del mensaje, ese es el que tendremos que parchear. Abran el Hex Workshop y instoduzcan el offset de l salto(94A50). Cambien el 74 a 75 guarden los cambios y ejecuten el programa. Perfecto!!!!!!!!!!!!. Ahora si funciona.Todo se ter min. Ahora pueden borrar el programa ya que nos ocupa 2.81 megas de basura. Despedida y agradecimientos Gracias a mi nuevo grupo K -FoR, por invitarme a ser miembro y por su apoyo. Gracias a Pr@fEsOr X por su fabulosa compilacin (no dejes de bajrtela!!!) y por el trabajo que est realizando en benficio nuestro grupo. Gracias tambin a Karpoff, por su *gran* ayuda y sus consejos, y a Txeli, por su apoyo moral y por pasarme algunos programas interesantes. Y finalmente gracias a ustedes por leer mi manual y a todos los que me mandaron mails. Saludos, nos vemos en el prximo manual!!!,

Cracking desde cero para sper newbies 4 Los terrenos del Soft Ice!!! Saludos a todos!!!!. Como les va?. Despus de un bien merecido perodo de descanso v uelvo a estar activo para escribir este tutorial. Desde ahora, olvdense de JE a JNE o EB. Supongo que ya aprendieron todo eso y que lo hacen bien. Ahora la cosa se complica aunque con la prctica todo se vuelve f cil. Aprenderemos a utilizar una herramienta completamente nueva para ustedes. Empezaremos con el Soft Ice, desde ahora en adelante le llamaremos SiCE ok?. Basta de introducciones y a trabajar. Temas que trataremos No hablaremos acerca de la configuracin del SICE o del Winice.dat ya que esos temas los vimos en el manual nmero 1.Estos son los temas que se tratarn a lo largo de este manual: 1) Descripcin 2) Utilizacin b sica 2.1) Teclas de funciones

2.2) Break Points 2.3) Break Points on Memory Access 2.4) Comandos para manejar los Break Points 2.5) Comandos para ver los procesos en ejecucin 3) A buscar un serial !!! 4) Despedida 1) Descripcin Se podra definir como un programa creado para identificar los errores lgicos de los otros programas (bugs) y proporcionar m edios para repararlos. Los debuggers o depuradores son utilizados al mismo tiempo en que el programa est ejecutndose con el fin de facilitar la obtencin de informacin relativa a los procesos mientras estos estn teniendo lugar. Un buen depurador debe disponer de opciones para mostrar el contenido de la mem oria y de los registros, e incluso para modificarlos, y para provocar la ejecucin de rutinas durante la presentacin de datos importantes que faciliten el diag nstico de fallos. 2) Utilizacin bsica El SiCE aparecer si pulsamos las teclas ctrl+d, estas teclas estn predeterminadas por defecto. No podramos decir que se ejecuta cuando presionamos estas teclas ya que el SiCE est siempre monitoreando los procesos que se ejecutan en la PC, es decir, si lo tenemos cargado en el autoexec.bat, siempre que usemos la computadora estar ejecutndose, pero si creamos un bat y tenemos que reiniciar la PC para cargar el SiCE ste se ejecutar e n el momento que se cargue el bat. Si abren el SiCE, notarn que hay un montn de cosas, nmeros que seg uro que les son familiares (nuestro querido ensamblador) y nmeros que no les son familiares. Notarn tambin que el SiCE est dividido en ventanas. Cada uno de ustedes pueden tener o ms o menos ventanas se gn como las tengan configuradas. Les pueden camb iar el tamao, las pueden quitar y pueden hacer alguna que otra cosilla ms con las ventanas. 2.1) Teclas de funciones A continuacin, les doy las teclas que utilizaremos y su funcin: F1<----------------- Ayuda F2<----------------- Activa la ventana de registro F4<----------------- Muestra como va todo fuera del SiCE en ese instante pero sin salir de l. Es como que "minimizamos" el SiCE. Se vuelve al SiC E con F4 tambin. Podremos ver como est Windows pero solo como una foto. No podremos hace r nada, ni siquiera mover la flechita. F5<---------------- Salir del SiCE. Ms precisamente hace que el programa que estemos monitoreando corra normalmente hasta que se tope con algn breakpoint que hallamos puesto anteriormente. Es igual que presionar Ctr l+ D. F8<---------------- Ejecutamos el programa paso a paso (esto es tracear) entrando en los procesos. F10<-------------- Igual que F8 pero sin entrar en las call. Se las salta hasta que llegue a un ret (retorno). F11<-------------- La utilizo igual que F12 F12<-------------- Nos retorna al punto en donde ha terminado una call. Por ejemplo ponemos bpx (breakpoint) por ejemplo en la API de la User32. dll MessageBoxA el programa hace la llamada con call MessageBoxA y la llamada termina en la User32.dll ya que ah est la MessageBoxA. Lo que siempre se hace es presionar F12 o F11 para ir al punto del programa que hizo la llamada a esa API. Lo veremos ms abajo en la prcti ca. G<---------------- Pulsando G, nos vamos directamente a una direccin de memoria, e jemplo: G 0054545, nos vamos a esa direccin Traten de memorizarse estas teclas para que cuando usen el SiCE las cosas les queden ms claras. Es fcil, no son tantas as que no se quejen. 2.2) Break Points Esto es una de las cosas ms importantes que tiene el SiCE. Sin esto, no podramos descubrir ningn nmero de serie vlido ni nada de eso sin los Break Points. Recuerdas que el SiCE (cuando lo tenamos cargado) estaba permanentemente monitoreando l os dems programas en ejecucin. Pues un Break Point (o punto de ruptura) es una instruccin que le damos al SiCE para que detenga la ejecucin de un programa en el momento que ste llama a una API de una dll. Recuerdas todo lo de las dll supongo, no?. Rec uerdan que el programa tena que recurrir a las API de las dll para ejecutar distintos tipos de procesos como la muestra de un mensaje que diga "Invalid serial number". Esto se debe a alguna funcin API que el programa desde un determinad o lugar del cdigo (podran ser MessageBoxA de la user32.dll o Getdlgitemtexta tambin de la User32.dll). Despus de haber detenido el programa en ese lugar del cdigo tracearemos hasta encontrar nuestro nmero de serie vlido, o el salto a parchear, etc. Ya sabemos que son los Break Points, ahora debemos saber como ponerlos. Es mucho ms fcil de lo que creen, simplemente tienen que esc ribir bpx xxxxxxxxx. Las x seran la funcin en la que queremos poner el Break Point o la direccin de memoria!!!(de ahora en ms, a los Break Points les llamaremos bpx, ok?). Por su no en Abren el Paint, hacen algn cambio y les aparece el mensaje de Desea guardar los cambios?, se debe a la API de MessageBoxa d e la User32.dll. Pero esta no es la nica que hay, es comn pero igualmente lo son GetWindowTextA de la User32.dll, GetDlgitemTexta tambin de la User32.dll, y dems. Aqu, una lista de los BPX ms usados: Propsitos generales bpx hmemcpy bpx MessageBox bpx MessageBoxExA bpx MessageBeep bpx SendMessage bpx GetDlgItemText bpx GetDlgItemInt bpx GetWindowText bpx GetWindowWord bpx GetWindowInt bpx DialogBoxParamA bpx CreateWindow bpx CreateWindowEx bpx ShowWindow

bpx UpdateWindow Relacionadas con el TIEMPO bpint 21 if ah==2A (DOS) bpx GetLocalTime bpx GetFileTime bpx GetSystemtime Acceso al Disco Duro y CD Rom bpint 13 if ah==2 (DOS) bpint 13 if ah==3 (DOS) bpint 13 if ah==4 (DOS) bpx GetFileAttributesA bpx GetFileSize bpx GetDriveTypeA bpx GetLastError bpx ReadFile bpio -h (La direccin del puerto de tu CD -ROM) R Relacionadas con archivos bpint 21 if ah==3dh (DOS) bpint 31 if ah==3fh (DOS) bpint 21 if ah==3dh (DOS) bpx ReadFile bpx WriteFile bpx CreateFile bpx SetFilePointer bpx GetSystemDirectory Relacionadas con Ficheros INI bpx GetPrivateProfileString bpx GetPrivateProfileInt bpx WritePrivateProfileString bpx WritePrivateProfileInt Relacionadas con el REGISTRO bpx RegCreateKey bpx RegDeleteKey bpx RegQueryValue bpx RegCloseKey bpx RegOpenKey Extrado del tutorial de Profesor X, con algunas modificaciones adaptndolo a su nivel. Por ahora, deben saber los del tiempo, los del acceso al disco duro y al CD (los de Windows claro) y todos los que puedan sob re los propsitos generales, que en su mayora sirven para mostrar ventanas. Por supuesto que todas estas son las funciones API que ms utiliza un programa. Obvio que ha y muchas ms (las API son ms de 2000) pero bsicamente estas son las ms que nos sirven. Hay otra funcin que personalmente no la conoca hasta hace poco, se llama EnableMenuItem. Esta API de la user32.dll es muy til para los programas que tienen funciones restringidas como el botn para introducir el nmero de serie. Esto tambin se puede hacer con programas como The Customiser, pe ro los cambios se realizan en la memoria, como en el SiCE, y al cerrar la ventana y volverla a abrir ya no nos guarda los cambios. Por eso es til utilizar EnableMenuItem para hacer los cambios permanentemente (utiliza ndo un editor hexadecimal por supuesto). Tambin hay otras como ModifyMenu o CheckMenuItem pero creo que esta es la ms comn. De todas maneras las menciono para q ue sepan que existen, por ahora no pueden usarlas ya que hay que tener un domino absoluto del SiCE para no estar pegado a un manual . 2.3) Break Points on memory access Los breake points on memory acces son iguales que los bpx. La diferencia que tienen (como su nombre lo indica) es que no se p one un punto de ruptura cuando un programa llama a una API, sino que se pone un break point en el acceso o en la lectura de una direccin de memoria. No se ponen con bpx, sino que con bpm. No se puede poner por ejemplo bpm messageboxa ya que , solo se pueden poner bpm en direcciones de memoria. Pero... habamos dicho que se podan poner bpx en direcciones de memoria, cual es la diferencia entre poner un bpx en una direccin de memoria y poner un bpm? Pues que al poner un bpxestaramos accediendo al lugar en que el programa "llama" a esa direccin de memoria y poniendo un bpm estaramos accediendo al lugar en donde el programa accede o lee a esa direccin de memoria. Fcil no?. Al poner por ejemplo bpm 0054876 le estaramos diciendo al SiCE que se pare cuando el programa lea esa direccin de memoria y no que se detenga cuando la escriba (o sea que la modifique por ejemplo introduciendo nuestro nmero de serie vlido). Para indicarle al SiCE que queremos que pare cuando el programa escriba en la direccin de memoria se le pone una W al final del bpm que hayamos puesto. Ejemplo:bpm 0068954 W. Aqu le estaramos indicando al SiCE que salte cuando el programa escriba en esta direccin de memoria, la puede leer y sac ar datos de ella un milln de veces pero el SiCE no saltar. 2.4) Comandos para manejar los break points Aqu abajo la abreviatura bpx se refiere a todos los que hay ya sean bpx en APIs, bpm, bpio (para las mochilas), etc.

Para manipular los bpx: BL: nos da una lista de todos los bpx, el orden es desde el cero en adelante. BC: borrar bpx. Escribimos bc0 y nos borra el primer bpx que pusimos. Si ponemos bc1 nos borra el segundo. Pero lo que ms usaremos (por lo menos lo que ms uso yo) es el comando bc*, el cual nos borrar todos los bpx que hayamos puesto. BD: desactivar el bpx que indiquemos. Igual que bc. Bc0 , desactiva el primer bpx que hayamos puesto. Se desactivan todos igual que antes, escribiendo bd*. BE: Activa un bpx. Ni explico porque es igual que los otros. 2.5) Comandos para ver los procesos en ejecucin Recuerdan que el SiCE era un depurador?. Y para que fueron creados los depuradores originalmente? (no fueron creados para c rackers que buscan un nmero de registro vlido). Los depuradores fueron creados para descubrir errores en los programas, y para es o es necesario poder ver los procesos en ejecucin. A continuacin, los comandos para manejarlos: D EAX (u otro registro o direccin de memoria) <----muestra el contenido de lo que hayamos marcado en la ventana de datos. La ventana de datos es igual a la qu e ven en el editor hexadecimal, pero en el SiCE. Muchas veces veremos ah nuestros nmeros de serie vlidos. ? EAX(u otro regustro o direccin de memoria)< ---- nos muestra el valor que hayamos marcado en la lnea de comandos Ante cualquier duda que pueda haber con las ventanas he hecho este esquema de ellas ya que no se como conseguir una foto verdadera:

As es como tengo configuradas las ventanas del SiCE. Recuerden que las ventanas del SiCE son altamente configurables y que p odemos cambiarles la altura, desactivarlas, el ancho, etc. No voy a explicar todo esto porque sino el tutorial se vuelve muy largo pero si quieren saberlo , pueden leer el tutorial de SiCE de Black Fenix, que explica exhaustivamente todo esto de las ventanas y en defin itiva la utilizacin bsica del SiCE. Este manual que estn leyendo les puede servir de una introduccin para entender mejor el otro y para saber lo que hacemos cuando vayamos a utilizar por primera vez esta he rramienta para conseguir un nmero de serie v lido un poco ms abajo. A buscar un serial !!! Despus de esta introduccin al SiCE creo que ya pueden ms o menos manejarse con l y poder encontrar un serial vlido. Aqu van los detalles de nuestra Vctima: Vctima: Stay Connected! v 3.0 URL: Descripcin: Tamao del ejecutable: Tipo de Proteccin: Mtodo de ataque Objetivo Dificultad Herramientas ftp://zdftp.zdnet.com/pub/private/sWlIB/internet/internet_tools/stycon.zip Evita que el servidor te desconecte de internet despus de un tiempo estando inactivo. 776 kb Serial Depurar Extender el perodo de prueba Newbie - Aficionado - Avanzado - Experto - lite Soft Ice

Fecha: 28/9/2000 Les recomiendo que se familiaricen con el SiCE antes de seguir con esta parte. Prueben, pongan por ejemplo un bpx en messageboxa, abran el Paint hagan algo y luego salgan. Vern que el SiCE saltar inmediatamente y podrn observar (apretando F12) el lugar en el que se hizo la llamad a a esa API dentro del cdigo del programa. El programa que eleg es un programa que evita que el servidor que te conecta a Internet, te desconecte despus de un tiempo estando inactivo. Lo que me pareci raro es que el cdigo que encontraremos, no nos servir para registrar el programa, sino que servir para extender el perodo de prueba. De todas maneras, eleg este programa , por la facilidad con que podemos encontrar un nmero vlido aunque no nos servir para registrarnos. El lmite de tiempo, s e los dejo a ustedes, hganlo con el W32Dasm y el editor hexadecimal. Yo ni siquiera lo prob, talvez lo haga pero en principio se los dejo a ustedes.

Ejecutemos el programa, hmmm, cuando empezamos ya nos aparece algo como "Unregistered evaluation copy". El programa est en l a barra de tareas del men inicio. Pongan la opcin para introducir un nmero de serie:

Hasta ahora t odo bien. Llenemos los datos que nos piden, yo lo har como se muestra en la imagen:

Muy bien. Ahora pulsamos "Aceptar", y como era de esperar, nos aparece el mensaje de "Wrong registration code!" . Pensemos. Para mostrar este mensaje el programa tiene que haber llamado a una API, seguramente la user32.dll. Y si ponemos un bpx para que el SiCE detenga al programa cuando llame a esa API?.Pero recuerden que el programa debe llamar la funcin que que nos muestra el mensaje por alguna razn. O sea que s i podemos ver los alrededores del cdigo que llam al mensaje de error, podremos encontrar la comparacin del serial que introducimos con el correcto. Sin esperar ms ponemos un bpx. Pero que bpx???.Lo que podemos hace es poner varios a ver cual ca e. Como varias veces me ha pasado que no cae ninguno, podemos usar la API que cae el 99,9% (ms bien dira 100%, nunca me fall), HMEMCPY. Hmemcpy es una API de la kernell32.dll. Esta API utiliza la memoria RAM para leer, manipular, comparar y almacenar strings (el texto que has introducido en un programa). La f uncin toma la informacin que has escrito los pone en la memoria. Luego manipula los str ings moviendo y comparndolos (por ejemplo, comparando t nmero de serie al correcto), y entonces decide si tu string es correcto o incorrecto. Luego HMEMCPY devuelve la informacin obtenida a la aplicacin y luego salta el mensaje de "Gracias por registrarse" o el de "Mal!". La desventaja que tenemos con esta funcin es que es mucho ms difcil encontrar la comparacin de los dos seriales ya que no caemos en un lugar determinado del cdigo, y la ventaja es que pica casi siempre. Antes de usarla ha y que probar con otros bpx as que pulsamos [Ctrl+D], y ponemos tres bpx, bpx messageboxa, bpx Getdlgitemtexta y bpx getwindowtexta. De nuevo [Ctrl+D] o F5 o [X+Enter] para volver a Windows y ahora pulsamos "Aceptar". Que bien!!!, directamente al SiCE. El bpx que pico fue GetWindowTexta. Si se fijan bien, aparecemos en la User32.dll, y esta no es la zona que nos interesa, nos interesa el ejecutable del programa . As que como deben recordar, presionamos F12, yo dos veces, para ver quien hizo la llamada a GetWindowTexta, ubicada en la user32.dll. F12 dos veces y ahora apareceremos en este lugar: :00421E83 E813A60200 call 0044C49B<------------------------ Aqu aparecemos :00421E88 8D5F60 lea ebx, dword ptr [edi+60] :00421E8B 53 push ebx :00421E8C 68FA030000 push 000003FA :00421E91 56 push esi :00421E92 E804A60200 call 0044C49B :00421E97 68FE000000 push 000000FE :00421E9C 53 push ebx :00421E9D 56 push esi :00421E9E E85BA70200 call 0044C5FE :00421EA3 83C764 add edi, 00000064 :00421EA6 57 push edi :00421EA7 68FB030000 push 000003FB :00421EAC 56 push esi :00421EAD E8E9A50200 call 0044C49B :00421EB2 68FE000000 push 000000FE :00421EB7 57 push edi :00421EB8 56 push esi :00421EB9 E840A70200 call 0044C5FE :00421EBE 5F pop edi :00421EBF 5E pop esi :00421EC0 5B pop ebx :00421EC1 C20400 ret 0004<------------------------------- Retorno Este lugar me parece interesante. Lo que deben hacer en estos casos, es ir viendo que valor tienen los registros o sea que po nemos d eax,(mira la ventana de datos) nada interesante, d ebx, t ampoco, d ecx, si!!!, es nuestro cdigo, en mi caso 55555!!!. Genial, ahora borramos el bpx que habamos puesto con bc*. Lo que haremos en este caso es poner ?ecx a ver que vemos. EN MI CASO (las direcciones de memoria pueden variar) veo esto en la ventana de comandos: 00135175C 0020256604 "...

Lo que resalt en amarillo es la direccin de memoria en la cual se encuentra nuestro cdigo vlido. Y si pensaran un poco... .. si!!!, pondremos un bpm en esa direccin para saber cuando el programa la lee o la escribe y a ver si encontramos el serial vlido. OK. En mi caso lo que debo poner es bpm 00135175C. Despus de poner el bpm presionamos F5 para salir a Windows... pero que pasa?, entramos de vuelta al SiCE, porqu?. Porque el programa acab de leer esa direccin de memoria y con el bpm le habamos indicado al SiCE que saltara cuando lo hiciera. Apareceremos en un lugar ms o menos as: :004378E0 8A06 mov al, byte ptr [esi] <------Aparecemos aqu :004378E2 46 inc esi :004378E3 8A27 mov ah, byte ptr [edi] :004378E5 47 inc edi :004378E6 38C4 cmp ah, al :004378E8 74F2 jz 004378DC<----------------- Si vamos a esta direccin, nuestro nmero est por todos lados :004378EA 2C41 sub al, 41 pero no le veo nada interesante. :004378EC 3C1A cmp al, 1A :004378EE 1AC9 sbb cl, cl :004378F0 80E120 and cl, 20 :004378F3 02C1 add al, cl :004378F5 0441 add al, 41 :004378F7 86E0 xchg al, ah :004378F9 2C41 sub al, 41 :004378FB 3C1A cmp al, 1A :004378FD 1AC9 sbb cl, cl :004378FF 80E120 and cl, 20 :00437902 02C1 add al, cl :00437904 0441 add al, 41 :00437906 38E0 cmp al, ah :00437908 74D2 jz 004378DC<---------------- En esta lo mismo, pero despierta ms sospechas que la primera :0043790A 1AC0 sbb al, al :0043790C 1CFF sbb al, FF Como podrn ver, hay varias operaciones y despus hay dos JZ. JZ es igual que JE, o sea que significa salta si es equivalente. Para que no se se armen un lo, les digo que ya fui a la jz 004378DC (a esta direccin de memoria) pero la segunda direcc in de memoria, a la que saltar el programa si todas las operaciones que se realizaron dieron como resultado un valor equivalente (ms fcil, si AL y AH son iguales (miren arriba del segundo jz). Va mos a ver. Para ir a una direccin de memoria usa remos el comando G del SiCE. O sea que escribimos G direccin de memoria (en mi caso 004378DC) y pulsamos enter y listo. Pero... ATENCIN!!!!!!!!!!!!.Hay una manera mucho ms fcil y rpida de hacerlo. Recuerdan que el registro que contena el serial que h abamos introducido era ECX. Probemos, pongamos d eax, d ebx, d ecx, esto tiene pinta de nmero vlido. Una curiosidad, pongan d esi y vern. Para los despistados este es mi nmero (vara con lo que hayamos puesto en name y company) EXTENDING-92385-..... mejor vayan por el suyo!!!!. Como ven, este cdigo no les registra el programa, sino que les extiende el perodo de evaluacin. No se preocupen por el lm ite de tiempo, dice Evaluation time expired pero no expira. Solo nos recuerda que gastemos nues tro dinero en el programa. Ante toda duda que pueda haber, les comunico que este tutorial ha sido creado solo con fines educacionales y que yo no me puedo hacer responsable del uso que ustedes le puedan dar. Si te gusta alguno de los programas que crackeas, CMPRALO!!! Si TiENEN UN PROGRAMA QUE LES EST DANDO LiO PARA CRACKEAR, MNDENME UN MAiL DiCiNDOME DE DONDE LO PUEDO BAJAR Y SI NO ES NADA DE OTRO MUNDO, HAGO UN TUTORIAL!!!. 4) Despedida El manual ha terminado. Espero que se lean buena cantidad de manuales donde haya que encontrar seriales vlidos, ya que no es solo terico, tambin es prctico. Cuando empec con el SiCE me lo conoca de punta a punta (lo terico) pero iba a buscar un serial vlido y me perda. Por sue rte eso ya se fue y no me pasa ms hace tiempo pero traten de que no les pase a ustedes. Gracias a K -FoR, por invitarme a ser miembro del grupo a Profesor X, por su compilacin (ahora hay una nueva sobre cursos de una gran variedad!!!) y por toda su ayuda. A karpoff, por su gran apoyo y sus recomendaciones, Txeli, por su apoyo moral y por dejarme algunos programas interesantes. Gracias a ustedes por leer mis manuales. Este fue nuestro inicio con el SiCE,

Cracking desde cero para sper newbies 5 Vctima: URL: Descripcin: Tamao del ejecutable: Tipo de Proteccin: Mtodo de ataque Objetivo Cracker Dificultad Herramientas Visual Labels v. 3.2f www.rkssoftware.com Para crear etiquetas 1,18 megas Serial Desensamblar y Depurar Simular estar registrados dek_Oin Newbie - Aficionado - Avanzado - Experto - lite SoftIce, W32Dasm.

Fecha: 30/09/2000 Saludos a todos como les va?. Tan solo una hora despus de terminar el manual anterior, escribo este. Est relacionado tambi n con el SiCE ya que encontraremos un nmero de registro vlido para este programa. Les dije que se olvidaran de cambiar simples saltitos fciles de encontrar, pero no les dije que se olvidaran de el W32Dasm, nos ayudar mucho.

A crackear... Otra proteccin horrible. La verdad es que da lstima. Pero bueno, sirve para practicar un poco verdad?. Conoceremos (si no p ensaron nunca sobre esto), la relacin entre el W32Dasm y el SiCE, que realmente facilita mucho las cosas a la hora de encontrar n meros de serie vlidos. Este programa sirve para crear etiquetas, a mi personalmente no me gusta mucho, pero no puedo opinar si lo nico que hago con estos programas es bajarlos, c rackearlos, tutorial, guardar el instalador por si surge cualquier duda y lu ego borrar los programas. Les puede parecer un poco "montono" pero as se aprende rpido, ya vern. Vamos a la toma de contacto con el programa. Lo ejecutamos, hmmm, una nag:

Que asco!!!!, no hay nada peor que una nag cada vez que inicia mos un programa!!!!, las odio!!!. Y todava miren el precio de este programa!!!, 20 dlares, que caro. Vamos a ver que podemos hacer para eliminarlas. Hagan clic en "Enter Serial Number" y rellenen la informacin. Yo l o har como se muestra en la imagen:

Bien, ponemos ok y como era de esperar:

Pero que nag ms estpupida!!!!, nunca vi una que nos diera tanta informacin sobre el serial. "Make sure that the serial number starts with RKS -" como pueden ser tan estpidos?. De todas maneras no importa. Desensa mblemos con el W32Dasm y busquemos en las strings references algo como "Invalid registration code" o algo que tenga la palabra invalid.

Aqu est lo que buscbamos. Hacemos doble clic muchas veces para ver cuantas referencias hay sobre el y hay muchas, no las cont pero cualquiera de lo mismo. Miren lo que vern el la primera: :004928A5 8B88D0010000 mov ecx, dword ptr [eax+000001D0] :004928AB 8B55F8 mov edx, dword ptr [ebp-08] :004928AE 8B45FC mov eax, dword ptr [ebp-04] :004928B1 E826EDFFFF call 004915DC :004928B6 84C0 test al, al :004928B8 7412 je 004928CC<-------------- Direccin llamada de todos lados :004928BA 8B45F4 mov eax, dword ptr [ebp-0C] :004928BD C7802801000001000000 mov dword ptr [ebx+00000128], 00000001 :004928C7 E91B010000 jmp 004929E7 * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:004928B8(C)<-------------------------- Error llamado desde un salto en la direccin 004928b8 | :004928CC 55 push ebp :004928CD E826FDFFFF call 004925F8 :004928D2 59 pop ecx :004928D3 84C0 test al, al :004928D5 741F je 004928F6 :004928D7 6A00 push 00000000 * Reference To: user32.MessageBeep, Ord:0000h | :004928D9 E8422BF7FF Call 00405420 :004928DE 66B93000 mov cx, 0030 * Possible StringData Ref from Code Obj ->"Product Registration" | :004928E2 BA302A4900 mov edx, 00492A30 * Possible StringData Ref from Code Obj ->"Invalid Serial Number or Name." | :004928E7 B8502A4900 mov eax, 00492A50 :004928EC E873FCFFFF call 00492564 :004928F1 E9F1000000 jmp 004929E7 Fcil por ahora. Vean el salto de la direccin 004928CC. Esto es lo que tenan en comn todas las referencias que haban sobre el mensaje de error, que todas se dirigan a este salto. Si salta nos muestra el mensaje de error. Que podramos hacer, parchearlo con el editor hexadecimal ?, no!!!. Si lo parcheamos, lo nico que estaramos haciendo es que el programa muestre siemp re la ventanita de "Gracias por registrarse", al iniciarlo de nuevo, el programa no estar registrado. Vamos a conseguir un nmero de serie vlido con el SiCE. Si vamos a usar el SiCE, para que desensamblamos e hicimos todo esto?. Ahor a tenemos una gran v entaja, ya sabemos donde se realiza la comprobacin del serial, y en el SiCE todo ser ms fcil. Es ms, no haremos casi nada, la mayor parte la hicimos en el W32Dasm. Lo que haremos ser poner un bpx en la direccin de memoria del salto. La anota mos. Haremos uso de una importantsima parte del SiCE. El Symbol Loader. El Symbol Loader sirve para cargar el programa desde SiCE en modo de depuracin. As podrs trazar el programa paso a paso de sde la primera instruccin. Es importante en depuracin de programas y para descompresin o desencriptacin manual de stos.

Abrimos el Symbol Loader, ponemos File/Open Module y seleccionamos el ejecutable del Visual Labels (VI.exe). Luego pulsamos e n y se mostrar un mensaje de un error. Pnganle si y s altaran directo al SiCE. Luego ponemos el bpx en la direccin de memoria ( bpx 004928B8 en mi caso) y pulsamos F5. Vern que el programa est ejecutndose. Ponemos nuestros datos (los mos son Nombre: dek_Oin Serial: 55555) y luego pulsamos OK. En e l SiCE!!!. Apareceremos aqu: :00492897 8B80B0010000 mov eax, dword ptr [eax+000001B0] :0049289D E87227F8FF call 00415014<------------------ Llamada a la rutina de comprobacin :004928A2 8B45F4 mov eax, dword ptr [ebp-0C] :004928A5 8B88D0010000 mov ecx, dword ptr [eax+000001D0] :004928AB 8B55F8 mov edx, dword ptr [ebp-08]<-------EDX contiene nuestros datos :004928AE 8B45FC mov eax, dword ptr [ebp -04] :004928B1 E826EDFFFF call 004915DC :004928B6 84C0 test al, al :004928B8 7412 jz 004928CC<--------------------------------- Aqu aparecemos :004928BA 8B45F4 mov eax, dword ptr [ebp -0C] :004928BD C7802801000001000000 mov dword ptr [ebx+00000128], 00000001 :004928C7 E91B010000 jmp 004929E7 :004928CC 55 push ebp :004928CD E826FDFFFF call 004925F8 Creo que la cosa est clara. Estamos en el mismo lugar que habamos visto en el W32Dasm. As que tenemos que ir viendo el con tenido de los registros. D eax, nada interesante, d ebx, nada, d ecx, nada, d edx, si!!!!, ah estn nuestros datos. Lo que me llam la atencin es que se generan 2 nmeros de serie vlidos para cada nombre. Y los dos funcionan bien. Qu raro no?. Pienso que los programadores de RKS tendran que empearse ms en sus protecciones y lo peor, no deberan decirnos que el serial empieza con RKS y que luego tiene un -!!!!. Despedida Aqu culmina mi sptimo manual que no es poco. Me despido pero no sin antes dar las gracias al grupo K -FoR, por invitarme a ser miembro y por su apoyo. Gracias a Profesor X por su fabulosa compilacin y por toda su ayuda. Gracias tambin a Karpoff, por su gran apoyo y sus consejos, y a T xeli, por su apoyo moral y por pasarme algunos programas interesantes. Y finalmente gracias a ustedes por leer mi manual. Y este fue el principio,

Cracking desde cero para sper newbies 6 Vctima: URL: Descripcin: Tamao del ejecutable: Tipo de Proteccin: Mtodo de ataque Objetivo Cracker Dificultad Herramientas Visual Buisiness Card v 3.3a http://ourworld.cs.com/rkssoft2/vbc3.exe Para crear tarjetas profesionales creo. 1.20 mb Serial Depurar Obtener un nmero de registro vlido dek_Oin Newbie - Aficionado - Avanzado - Experto - lite SoftIce 3+

Fecha: 03/09/2000 Continuamos la saga de manuales de cracking desde cero. Seguimos con el SiCE. La diferencia con los otros manuales, es que us aremos una tcnica diferente y a menudo un poquito ms complicada que las dems ( solo usando el SiCE). Pues bueno, cualqui er cosa que no entiendas mndame un mail (mi direccin est abajo del todo) ya que es posible que les cueste un poco comenzar con esta imprescindible herramienta. Los pedidos de cracks sern automticamente ignorados!!!. Introduccin Otro programa de la RKS software. Son excelentes para practicar. Ser muy fcil encontrar un nmero de serie, no usaremos la misma tcnica que antes aunque sera lo mismo. Mejor dicho, no sera lo mismo ya que de esta manera se aprende mucho ms qu e antes. Esta vez tracearemos de verdad, con F10, F12 o F11, no se piensen que el SiCE es as de fcil de utilizar, tiene un montn de comandos que utilizaremos y otro montn de comandos que no utilizaremos. Ya tendrn una idea de como ser el nmero de se rie (comienza por RKS) pero no les ayudar mucho. Encontraremos el lugar en el que se realiza la comprobacin traceando desde el SiCE sin poner los tpicos break points (de ahora en ms bpx) sino que utilizando otra alternativa que siempre funciona. Pues a trabajar!!! Comenzando... Siempre lo primero que tenemos que hacer es lanzar el Symbol Loader. Recuerdan lo que es?, si no lo recuerdan ser mejor que consulten el manual anterior. File/Open Module y seleccionan el ejecutable de Visual Buisiness Card (vbc.exe). El programa se ejecuta y nos vamos directo al SiCE. F5 para salir ya que no nos interesa entrar ahora. Al ejecutarse el programa nos muestra la misma nag que la del programa del tutorial anterior. Hagan cl ic en "Enter Serial Numbe r" yo pondr los siguientes datos: Nombre: dek_Oin Serial: 123456789

Y como era de esperar, la nag ms estpida que he visto (la misma que la del programa anterior). Vamos a atacar. [Ctrl+D] par a entrar al SiCE y luego ponemos un bpx en hmemcpy. Ustedes se preguntarn que es hmemcpy?. Hmemcpy es una API de Windows (est en la kernell32.dll) que utiliza la memoria RAM para leer, manipular, comparar y almacenar strings (el texto que has introducido en un programa). La funcin toma la inform acin que has escrito y los pone en la RAM. La funcin procede entonces a manipular estos strings, moviendo y comparndolos (por ejemplo, comparando t nmero de serie al correcto) , y entonces decide si tu string es correcto o incorrecto. Luego esta API en va la informacin obtenida al programa y ste hace el resto. Usando hmemcpy tenemos ventajas y desventajas. La principal ventaja es que pica casi siempre, olvdense de que el bpx no es el correcto, este siempre funciona. La principal desventaja es que aveces es ms difcil encontrar el lugar en el cual se realiza la comprobacin pero este no es el caso, ya vern. Primero escribimos los datos y luego escribimos bpx hmemcpy si no se harn un lo tremendo ya que el SiCE saltar permanentemente. Ponemo s OK y directamente al SiCE!!!. Si estamos en el SiCE es porque hmemcpy fue llamada desde algn lugar. Les explico: Recuerdan que hmemcpy se usaba para manipular strings. Pues aqu hemos introducido dos strings, el nombre y el serial. Como a travs de cada nombre se genera un serial, el programa necesita leer el nombre y para ello utiliza hmemcpy. Pero el programa tambin necesita comparar el ser ial que introducimos con el correcto y para esto tambin usa hmemcpy. Por lo tanto llegamos a la conclusin de qu e hmemcpy tuvo que ser llamada desde 2 lugares, desde el nombre y desde el serial. Estamos en el SiCE en la primera llamada a hmemcpy y como no nos interesa seguirle la pista al nombre presionamos F5 para salir del SiCE hasta que ste se tope con un bpx que hayamos puesto, y vern que el SiCE vuelve a aparecer inmediatamente. Esto es por la segunda llamada a hmemcpy. Si explora n un poco la pantalla del SiCE, vern que estamos en la kernell32.dll y esta zona no nos interesa ya que buscamos el lugar en el cu al se realiza la comprobacin y es imposible que este lugar sea la dll de kernell32 as que pulsamos F12 para ir a ver quien hizo la llamada a hmemcpy. Luego vern que es tamos en zonas llamadas user(0A) o user(03) o user (04), esto vara segn la computado ra y adems nos indica que no estamos dentro del ejecutable del programa, sino que estamos en las dll. Y qu debamos hacer para ver quien hizo la llamada a esa zona?. F12, en mi caso lo apret 6 veces ms hasta llegar al ejecutable d el programa. Aparecer n en un lugar as: :0042DBA5 50 push eax<------------------------------------- El valor de EAX en la pila :0042DBA6 E8817AFDFF Call 0040562C<----------------------------- Llama al mensaje :0042DBAB 85C0 test eax, eax<-----------Compara EAX con si mismo (siempre sern iguales) :0042DBAD 7505 jnz 0042DBB4<------------------------------- Nunca saltar aqu (ovbio no?) :0042DBAF 33C0 xor eax, eax<----------------- -------------- EAX vale 0 ahora :0042DBB1 894304 mov dword ptr [ebx+04], eax< -------Byte n 5 de EBX y lo mete en EAX(creo) :0042DBB4 8BD3 mov edx, ebx<------------------------------- EDX y EBX valen lo mismo :0042DBB6 8BC6 mov eax, esi<------------------------------- EAX y ESI valen lo mismo :0042DBB8 E85B98FEFF call 00417418<----------------------------- llamada a hmemcpy :0042DBBD 5E pop esi<-------------------------------- Aqu aparecemos :0042DBBE 5B pop ebx<-------------------------------------- EBX fuera de la pila!!! :0042DBBF C3 ret<------------------------------------- Retorno :0042DBC0 56 push esi<------------------------------------- Estas otras operaciones no nos :0042DBC1 8BF0 mov esi, eax servirn para nada. :0042DBC3 8BC6 mov eax, esi Creo que ya pueden describirlas ustedes solitos Esto me huele bien. Aqu entramos al lugar en el que se hizo la llamada a hmemcpy y otras operaciones que no nos servirn par a nada pero que aad la descripcin para que ya vayan aprendiendo a interpretar el ensamblador. Tenemos un retorno cerca da la call y que les parece si nos vamos por esas vas par a saber a donde nos conduce el retorno?. Vamos a probar... Tenemos 2 maneras de hacerlo. Con F8 entraramos en todas las ca ll que haya hasta toparnos con un ret. Pero con F10 podramos ir ejecutando el programa paso a paso sin entrar en las call. Opto por la segunda opcin para no liarnos mucho. En mi caso apret F10 unas 22 veces cre o y llegu a este lugar: :00455458 8B45F4 mov eax, dword ptr [ebp-0C] :0045545B 8B80B0010000 mov eax, dword ptr [eax+000001B0] :00455461 E842FFFBFF call 004153A8 :00455466 8B45F4 mov eax, dword ptr [ebp-0C] :00455469 8B88D0010000 mov ecx, dword ptr [eax+000001D0] :0045546F 8B55F8 mov edx, dword ptr [ebp -08] :00455472 8B45FC mov eax, dword ptr [ebp-04] :00455475 E84E610000 call 0045B5C8<------Llama la rutina de comprobacin (entrar con F8 para saber +) :0045547A 84C0 test al, al<------------- F10 hasta pararnos aqu :0045547C 7412 jz 00455490<----------- Salta al mensaje de error (siempre AL=AL, siempre saltar) :0045547E 8B45F4 mov eax, dword ptr [ebp -0C]<------------------------- Estas de abajo :00455481 C7802801000001000000 mov dword ptr [ebx+00000128], 00000001 no nos servirn :0045548B E91B010000 jmp 004555AB para nada :00455490 55 push ebp :00455491 E826FDFFFF call 004551BC Se preguntarn por que no indiqu que son las operaciones que estn arriba de la call. Estas no tienen casi nada que ver con la comprobacin del s erial. La call lo hace todo. La call nos lleva a la direccin 0045B5C8 y a partir de esa direccin de memoria se realizan todas las ope raciones que comprueban y generan nuestro serial hasta que se topan con un ret (C3 en hexadecimal, significa retorno) que nos conducir a la operacin que estaba despus de la call, o sea test al, al. Las operaciones Test al, al y jz 00455490 se podran simplificar en un jmp 00455490 (jmp= EB= Salta directamente a...)ya que Al siempre es igual a si mismo y como salta es salt a si es equivalente siempre saltar. Esta parte pudo haber confundido a ms de uno. Por lo tanto presionamos F10 hasta pararn os en test al, al y fjense el valor de los registros. D eax, d ebx, d ecx, d edx, si!!!!!, bajen un poco en la ventana de datos y vern los dos seriales generados por el programa. Como dice Profesor X, ufffff, creo que este arroz ya se coci!!! Finalizando Ven que fcil que es usar el SiCE!!!, nada complicado, aunque no se confen que este es un programa facilsimo de crackear. Me despido pero no sin antes dar las gracias al grupo K -FoR, a Profesor X por su fabulosa compilacin y por toda su ayuda, a Karpoff, por su gran apoyo y sus consejos, y a Txeli, por su apoyo moral y por pasarme algunos programas interesantes, a CrkViz (saludos amigo!!!). Y finalmente gracias a ustedes por leer mi manual. Uyyyy, el arroz se me quem, me voy rpido!!!!. Y con el arroz del Profe ya quemado, saliendo humo y incendindose mi cocina,

Cracking desde cero para sper newbies 7 Un repaso con el SiCE Hola amigos!!!, como les va a todos?, espero que bien. Por los mails que estoy recibiendo, veo que este curso les gusta, por lo que seguir e scribindolo. En este tutorial crackearemos varios programas y dentro de lo posible, les dar otros programas que se crackean de la misma forma (igual o con pequeas variaciones) para ir practicando. De ahora en ms, nos saltearemos explicaciones bsicas ya que vamos por el sptimo captulo!!!, tienen q ue saber lo bsico de lo estudiado!!!. Iremos tomando un ritmo ms rpido y gil as pienso que las cosas mejorarn. Bueno vamos a crackear!!! Vctima 1: Los detalles de nuestra primera VCTIMA: Vctima: URL: Descripcin: Tipo de Proteccin: Objetivo Password Keeper v5.7 http://www.gregorybraun.com/ Para organizar tus claves Serial y una nag horripilante al iniciar. Obtener un nmero de registro vlido.

Herramientas SoftIce 3+, papel y lpiz. A este programa, le doy 5 puntos sobre 10. Fue de mi agrado aunque no es gran cosa, les servir a los que no tienen buena memoria ya que solo tendrn que memorizar una clave, la de acceso a la base de datos donde estarn todas las otras claves que ustedes quieran. No tuve tiempo de probarlo mucho pero algo he visto. Su protecci n da lstima, ya vern que con un leve esfuerzo podremos sacar un serial vlido y registrar el programa. Ejecutmoslo y nos escupe una nag por un tiempo que parecera ms de lo que ese programa de tan pequeo tamao puede demorar en cargar. De hecho es as, ya que esta nag no aparece en la versin registrada. Pues quieren que aparezca esta nag?, yo no as que vamos a registr ar el programa. Help/Register y nos aparecer esta ventana:

Estos son los datos que introduc as que el program a calcular mi serial a travs de mi Name y la Organizacin que haya escrito. Ponemos siguiente y como era de esperar nos aparece la ventana de "Su nmero de serie es incorrecto, bla bla bla bla, pngase en contacto con mis creadores y pague por mi ya!!!" . Al diablo!!!.[Ctrl+D] y al SiCE. Cual Break Point ponemos?. Pongamos 3. Bpx messageboxa, bpx getdlgitemtexta, bpx getwindowtexta. A ver cual pica. Probemos. Ponemos OK y salta al SiCE, pic Getdlgitemtexta. Recuerdan que el mensaje de error era llamado (en este caso) por 2 razones. 1 el nombre y 2 la organizacin. Como a nosotros nos interesa el serial le damos a F5 2 veces para no seguirle la pista al Nombre ni a la Organizacin. Aparec eremos en la user32.dll ya que aqu est la funcin. No nos importa meternos en las dlls por lo que presionamos F12 o F11 una vez para ir al lugar del cdigo dentro del ejecutable del programa donde se hizo la llamada a Getdlgitemtexta. Luego vamos traceando con F10 y pasaremos por varios lugares interesantes. F10 ms o me nos 20 veces y apareceremos en este lugar: :00412847 FFD3 call ebx :00412849 EB07 jmp 00412852 :0041284B 3D3CCE5F0D cmp eax, 0D5FCE3C :00412850 750C jnz 0041285E :00412852 57 push edi :00412853 56 push esi :00412854 E827530000 call 00417B80 :00412859 83C408 add esp, 00000008 :0041285C 8BD8 mov ebx, eax :0041285E 57 push edi :0041285F 56 push esi :00412860 E81B530000 call 00417B80<-------------- Llama a la rutina de comprobacin :00412865 83C408 add esp, 00000008

:00412868 3BD8

cmp ebx, eax<--------------- Con los F10 ms o menos 20 veces n os paramos aqu.

:0041286A 5F pop edi :0041286B 741D jz 0041288A<----------------- Si EBX y EAX son iguales nos vamos a 0041288A :0041286D 68CFEA0000 push 0000EACF :00412872 6888130000 push 00001388 :00412877 55 push ebp :00412878 E8B378FFFF call 0040A130 :0041287D 83C40C add esp, 0000000C :00412880 5E pop esi Creo que ya est claro lo que haremos. Estamos parados sobre la comparacin de nuestros dos seriales, el generado por el programa y el que introducimos. Y que era lo que tenamos que hacer en estos casos?. D ebx, nada, d eax, nada. Pero aqu tendran que haber aparecido nuestros seriales?. En estos casos usaremos el comando ?. Escribimos ?ebx, si, es el serial que introducimos!!!, ?eax, esto tiene pinta de ser el serial correcto. Lo anotam os, lo escribimos sin los ceros del principio y..

. Si!!!, lo logramos!!!. Esta misma tcnica les servir para registrar R GB editor for Windows 95/NT, Battle Star v2.8, Reminders v3.5, en fin, los 27 programas de Software Design disponibles en http://www.gregorybraun.com/ . As que a practicar!!!. Espero que los crackeen toditos. Yo he crackeado como 6 ya que me aburr y los dej a todos esperando. Pero a ustedes seguro que les vendr bien hacer un pequeo repasito con el SiCE. Vctima 2: Aqu van los detalles: Vctima: URL: Descripcin: Tipo de Proteccin: Objetivo RainDrops http://www.northstarstudios.com/ Screensaver que simula la cada de lluvia en su escritorio. Caduca luego de 10 das de concluida la instalacin. Obtener un nmero de registro vlido.

Herramientas SoftIce 3+, papel y lpiz. De la existencia de este programa me inform Profesor X, gracias a l estn leyendo esto que les servir para ver una parte i mportante del SiCE. Gracias Profe!!!. El programa no me gust mucho pero nos servir para practicar, como casi todos los programas shareware que hay por Internet. Vamos a crackea rlo. Vayan a las Propiedades de pantalla/Protector de pantalla/Raindrops y aprieten el botn de configuracin. Ya se puede ver claramente que podemos introducir nuestro nmero de serie. Para hacerlo hagan clic en el icono de la llave y nos aparecer esta ventana: Aqu nos dice todo. Este protector de pantalla es shareware y caducar dentro de diez das. Pero que pode mos pagar 4.99 dlares por l y registrarnos. Si les gusta el Screen Saver, regstrense pero estamos aqu para crackear. Rellenen los datos que les pide. Yo lo har como se muestra en la imagen. Apretamos Unlock screensaver y como era de esperar "Invalid Registration Data". Podramos poner un Break Point en Messageboxa, getwindowtexta o getdlgitemtexta pero usaremos el Break Point bueno o sea hmemcpy. Yo lo utilizo el 80% de las veces. As que [Ctrl+D] entramos al SiCE. Luego ponemos bpx hmemcpy o bpxhmemc py. Es lo mismo ponerlo todo junto que separado por un espacio igual que poner d eax o deax, etc. Pusimos el bpx, ahora ponemos aceptar y nos vamos directo al SiCE. Primero F5 para no seguirle la pista al Nombre. Ahora estamos en la kernell32.dll as que p resionamos F12 para ver quien hizo la llamada a hmemcpy. Luego de apretar F12 una vez nos pasamos por la user32.dll. Para entrar al cdigo dentro del ejecutable del ScreenSaver hay que apretar F12 7 veces en total. Luego vamos traceando con F10 ms o menos 25 veces. Si no se la quieren hacer tan difcil, aprieten F12 5 veces ms y luego nos paramos encima de la call con algunos F10. Hay varias formas de llegar al mismo objetivo. Llegaremos a este punto: :0048F78C 8B45FC mov eax, dword ptr [ebp-04] :0048F78F 50 push eax :0048F790 8D55F8 lea edx, dword ptr [ebp-08] :0048F793 A124234A00 mov eax, dword ptr [004A2324] :0048F798 8B00 mov eax, dword ptr [eax] :0048F79A 8B80D8020000 mov eax, dword ptr [eax+000002D8] :0048F7A0 E84FFEFAFF call 0043F5F4 :0048F7A5 8B45F8 mov eax, dword ptr [ebp -08] :0048F7A8 5A pop edx :0048F7A9 E8DE020000 call 0048FA8C<--------------------------- ---Llama a la rutina de comprobacin :0048F7AE 84C0 test al, al<--------------------------------- Compara si el flag devuelto es cero :0048F7B0 0F84EE000000 jz 0048F8A4<--------------------------------- Si es cero nos vamos a 0048F8A4 :0048F7B6 33C0 xor eax, eax :0048F7B8 55 push ebp :0048F7B9 6883F84800 push 0048F883

Bien. Vemos que hay una call encima de test al, al. Como les muestro, test al, al compara si el flag devue lto por la call es cero. Los flags son como indicadores que dicen o verdadero(1) o falso(0). Aqu compara si el nmero de serie introducido es falso y de ser as nos vam os al mensaje de error. Pero, como se que este es el salto que decide todo?. Fcil. En este caso el flag devuelto por la call ser cero ya que introducimos un nmero de registro invlido. Lo que podemos hacer es invertir este flag para que sea 1. Cmo?. Muy fcil, en el SiCE debes escribir esto r fl z. Luego aprieta F 5 para salir y vers q ue aparece la ventanita de "Gracias por registrarse". Si no quieres, no pruebes ya que tendrs que volver a este punto. Estbamos en la call que llama a la rutina de comprobacin. Con la call nos vamos a la direccin 0048FA8C, es en esta direcci n donde se realizan las operaciones de clculo del serial. Para continuar la bsqueda de nuestro serial tendremos que entrar en la call. Nos paramos encima de ella y apretamos F8. Estamos dentro de la call. A tracear!!!. Ahora tenemos que ir dndole a F10. A pritenlo ms o menos 94 veces (ufff!!!). En el camino pasaremos por varios lugares interesantes como este: :0048FAE3 E858F1FEFF call 0047EC40 :0048FAE8 A178224A00 mov eax, dword ptr [004A2278] :0048FAED 8B00 mov eax, dword ptr [eax] :0048FAEF 8B4054 mov eax, dword ptr [eax+54] :0048FAF2 E83943F7FF call 00403E30<------Llama a la rutina de comprobacin de la logitud del s/n :0048FAF7 83F807 cmp eax, 00000007<----------------- Ve si nuestro serial tiene 7 caracteres :0048FAFA 7E2F jle 0048FB2B<------------------------- Si es menor nos vamos al error :0048FAFC A178224A00 mov eax, dword ptr [004A2278] :0048FB01 8B00 mov eax, dword ptr [eax] Estas lneas de cdigo nos van dando pistas sobre como tendr que ser el serial. Ya sabemos que tiene que tener 7 caracteres. Si es menor nos vamos al mensaje de error. Pero despus de apretar F10 las 94 veces apareceremos aqu: :0048FB98 33D2 xor edx, edx :0048FB9A 52 push edx :0048FB9B 50 push eax :0048FB9C 8D55E4 lea edx, dword ptr [ebp -1C] :0048FB9F B820000000 mov eax, 00000020 :0048FBA4 E89B8BF7FF call 00408744 :0048FBA9 8B55E4 mov edx, dword ptr [ebp -1C]<------------ Interesante :0048FBAC 8B45F8 mov eax, dword ptr [ebp -08]<------------ Interesante :0048FBAF E88C43F7FF call 00403F40<----------------------------------- Nos paramos aqu :0048FBB4 7504 jnz 0048FBBA :0048FBB6 B301 mov bl, 01 :0048FBB8 EB02 jmp 0048FBBC :0048FBBC 33C0 xor eax, eax :0048FBBE 5A pop edx :0048FBBF 59 pop ecx :0048FBC0 59 pop ecx :0048FBC1 648910 mov dword ptr fs:[eax], edx :0048FBC4 EB0C jmp 0048FBD2 De todas las zonas interesantes por las que pasamos. Y en las zonas interesantes siempre veamos el valor de los registros. D eax, si!!!, es el serial que introducimos!!!. D ebx, nada.D ecx, nada. D edx, esto tiene pinta de s erial, tiene 7 caracteres. Probemos, lo escribimos todo en maysculas y...

Lo logramos!!!!. Muy bien. Con esta misma tcnica podrn crackear los 4 ScreenSavers disponibles aqu. Esto les servir para practicar y para entretenerse un poquito :-). Espero que los crackeen todos. Estos si los he crackeado toditos ya que solo son 4. De ser ms me hubiera aburrido. Vctima 3: Aqu van los detalles: Vctima: URL: Descripcin: Tipo de Proteccin: Objetivo Herramientas A Smaller Image 1.0 ftp://ftp.bu.edu/pub/mirrors/simtelnet/win95/graphics/asimg10b.zip Para reducir en tamao de las imgenes!!!! Serial, y nag al empezar. Obtener un nmero de registro vlido. SoftIce 3+, papel y lpiz.

Ahh byte mio!!!, otro programa estpido. Para reducir el tamao de las imgenes!. A quien se le pudo ocurrir programar esto!. Por que casi todos los programas que crackeamos tienen que ser horribles!, nada bien hacen los programadores?. Espero que mejoren para un futuro muy cercano. Ejecutamos el programa (por si no saben, el ejecutable est en el directorio C:\Dondelohayasinstalado\bin\ASmallerImage.exe) y nos escupe una horripilante ventana "reclamando" por nuestro nmero de serie. Yo la llenar as:

Register y banggg,

Yo casi siempre cuando busco seriales uso hmemcpy. Siempre pica y los seriales por lo menos yo los encuentro ms rpido. [Ctrl+D] entramos al SiCE, bpx hmemcpy, F5. Luego le pegamos a Register y nos vamos directo al SiCE. F5 para no seguirle la pista al nombre. Estamos en las dll y esto no nos interesa por lo que presionamos F12 ms o menos para ir al lugar donde se hizo la llamada dentro del ejecutable del programa. Llegaremos a este punto: :004265F5 51 push ecx :004265F6 50 push eax :004265F7 8B4D10 mov ecx, dword ptr [ebp+10] :004265FA E881D2FFFF call 00423880 :004265FF 50 push eax :00426600 56 push esi :00426601 FF1550CA4300 Call[USER32!GetWindowTextA]<------------- Interesante no? :00426607 6AFF push FFFFFFFF<----------------------------------- Aqu aparecemos :00426609 8B4D10 mov ecx, dword ptr [ebp+10] :0042660C E847D2FFFF call 00423858 :00426611 EB0B jmp 0042661E :00426613 8B4510 mov eax, dword ptr [ebp+10] :00426616 FF30 push dword ptr [eax] :00426618 56 push esi :00426619 E853FCFFFF call 00426271 :0042661E 5F pop edi :0042661F 5E pop esi :00426620 5D pop ebp :00426621 C20C00 ret 000C<-------------------------------------------- Retorno :00426624 55 push ebp :00426625 8BEC mov ebp, esp :00426627 56 push esi Como siempre, llegamos a este punto y tenemos que tracear con F10. Ms o menos apritenlo 62 veces. Siempre busquen saltos ti po jz o jnz que puedan ser interesantes. Llegarn a este punto: :004013D4 E8D7980000 call 0040ACB0<----------------------- Llama a la rutina de comprobacin :004013D9 83C404 add esp, 00000004<-------------- hace una serie de operaciones para culminar :004013DC B860494300 mov eax, 00434960 con el clculo del serial :004013E1 8B555C mov edx, dword ptr [ebp+5C] :004013E4 8A08 mov cl, byte ptr [eax] :004013E6 3A0A cmp cl, byte ptr [edx] :004013E8 751A jnz 00401404<------------------------ -Muestra o no el mensaje de error? :004013EA 0AC9 or cl, cl :004013EC 7412 jz 00401400 :004013EE 8A4801 mov cl, byte ptr [eax+01] :004013F1 3A4A01 cmp cl, byte ptr [edx+01] :004013F4 750E jnz 00401404 :004013F6 83C002 add eax, 00000002 :004013F9 83C202 add edx, 00000002 Esta parece una zona interesante. Vamos a rastrear el contenido de los registros. D eax, este es un nmero ra ro, lo anotamos y lo escribimos (el cero del principio tambin)...

Con esta tcnica podrn registrar casi todos los programas disponibles en http://www.trivista.com/ . Hay algunos que no sern as de fciles pero que creo que podrn. As que a practicar!!!. Vctima 4: Aqu van los detalles: Vctima: URL: Descripcin: Tipo de Proteccin: Objetivo Herramientas dIRC v2.2.0.1 http://www.dragonmount.net/software/dirc/download/dirc.zip Programa de chat parecido al mIRC. Caduca a los 30 das y serial Obtener un nmero de registro vlido. SoftIce 3+, papel y lpiz.

Por fin un programa bueno que crackear!!!. Despus de tanta desilusin, nos encontramos con algo realmente bueno. Prueben este programa, le doy 7.5 puntos sobre 10. Ahora vamos a ver cuantos puntos le damos a su proteccin!!!. Lo ejecutamos, vamos al men Help/Purchase... y aparecer una ventana. Yo llenar los datos como se muestra en la imagen:

Pulsamos OK y no pasa nada!, se cierra la ventana!. Podramos pensar que los programadores saban lo que hacan cuando hicieron esta proteccin, pero como siempre, las apariencias engaan. [Ctrl+D] entramos al SiCE, bpx hmemcpy, F5 para salir del SiCE, pulsamos OK y directo al Si CE!!. Recuerden que primero siempre oprimimos F5 2 veces para no seguirle la pista al Name ni a la Company. Estamos en la kernell32.dll, esta zona no nos interesa as que presionamos F12 ms o menos 8 veces hasta que veamos que estamos dentro del ejecutable del programa. Ahora a tra cear!!!. Dmosle a F10 ms o menos 56 veces. No se preocupen por si en algunos momentos salimos del SiCE ya que aparecer instantneamente. Despus de darle 56 veces a F10 apar eceremos aqu: :0047D0CB 50 push eax :0047D0CC FFD3 call ebx :0047D0CE 83C410 add esp, 00000010 :0047D0D1 8D4C2410 lea ecx, dword ptr [esp+10] :0047D0D5 85C0 test eax, eax :0047D0D7 0F94C3 sete bl :0047D0DA E839BF0200 Call 004A9018<------------------------ Llama a la rutina de comprobacin :0047D0DF 84DB test bl, bl<--------------------------- Compara si el flag devuelto es cero :0047D0E1 0F8451010000 jz 0047D238<--------------------------- De ser as, chic o malo. :0047D0E7 8D4C2418 lea ecx, dword ptr [esp+18] :0047D0EB E8CABF0200 Call 004A90BA :0047D0F0 6A00 push 00000000 :0047D0F2 6801100000 push 00001001 :0047D0F7 6828B24E00 push 004EB228 :0047D0FC 8D4C2424 lea ecx, dword ptr [esp+24] :0047D100 C744244000000000 mov [esp+40], 00000000 Como en la vctima 2, puedes invertir el flag devuelto por la call escribiendo r fl z y aparecer la ventana de gracias por r egistrarse. Pero v amos a averiguar nuestro nmero de serie. D eax, nada. D ebx, nada. D ecx, nada. D edx, este es un nmero bastante rarito no?. Lo anotamos, lo escribi mos y...

Genial!!!si no encontraron el nmero y tienen que hacer todo de nuevo les doy una pista, el mo empieza por 63595 -6796-34... Aqu me mataron, no encontr ningn programa que se crackee as. Pero bueno, busquen ustedes, ya tienen mucha tarea que hacer. Despedida: Aqu culmina el manual con ms ejercicios prcticos que he hecho. Gracias a Profesor X por toda su ayuda, a Karpoff por su gr an trabajo en su page y por su apoyo, a K-FoR por supuesto, Mr.Mauve, por darme una clida bienvenida en el canal de WKT y por su ayuda en algunas reas, CrkViz por hacerme pasar tan buenos ratos con las joditas que te hago, y a ustedes que leen mis manuales. Saludos a todos y,

Vous aimerez peut-être aussi