EN QUE CONSISTE EL CRACKING

 

Los programas pueden estar escritos en muchos lenguajes de programaci�n (pascal, c, delphi, visual basic...). Cuando los compilamos y los hacemos ejecutables para poder usarlos, el compilador de turno interpreta las instrucciones que hemos escrito y las pasa a un lenguaje mas universal : el lenguaje ensamblador (ASM). Este lenguaje binario esta compuesto �nicamente por unos y ceros, es decir por n�meros, y como tales pueden ser expresados de distintas formas (decimal, hexadecimal, binario octal etc.). Dada la constituci�n interna de las computadoras, el formato mas c�modo es el hexadecimal (aunque internamente los datos/c�lculos los guarda/ejecuta en binario) Cuando abrimos un ejecutable con un editor de texto solo vemos caracteres extra�os, pero si abrimos ese mismo ejecutable con un editor hexadecimal, lo que vemos son n�meros hex. Cada uno de esos n�meros es un byte, por ejemplo la cadena ascii GERZA contiene 5 bytes, que expresados en hexadecimal ser�an 47 45 52 5A 41 : Hexadecimal : 47 45 52 5A 41 ascii G E R Z A Binario : 1000111 1000101 1010010 1011010 1000001 El ASM como cualquier otro lenguaje tiene sus propias instrucciones y estas instrucciones est�n relacionadas con los bytes que ves en el editor hex. Por ejemplo : Instrucci�n ASM N� Hexa N� Bin Significado NOP = 90 = 10010000 = no hace nada RET = C3 = 11000011 = retorna de una llamada PUSH EAX = 50 = 10100000 = coloca eax en la pila Pues bien, el arte de crackear consiste en modificar ciertos bytes (y l�gicamente las instrucciones asociadas a ellos) para que el programa haga lo que nosotros queramos, y no aquello para lo que originalmente fue dise�ado. Si por ejemplo nos encontramos un RET (C3) y cambiamos el byte C3 por 90 (NOP) en nuestro editor hex...�que pasara ? Pues sencillamente que no retornar� la llamada... y tenemos todos los boletos para que el programa casque :-) Es importante entender que los ejecutables contienen una parte de c�digo (instrucciones asm) y otra parte de datos (a los cuales accede dicho c�digo) Todos ellos son n�meros pero solo los primeros son ejecutados como instrucciones asm. Esta informaci�n y mucha mas, nos la proporciona la cabecera del programa, una zona que le explica al S.O como debe proceder para que se ejecute correctamente. Para encontrar la rutina correcta que debes modificar, est�n los breakpoints de los debugger. Lo que hacen b�sicamente es romper el programa (pararlo) en el punto que tu le digas. T�picamente en aparici�n de ventanas, apertura de ficheros, lectura de cajas de dialogo, acceso a puertos, lecturas de cd-rom....Echa un vistazo al apartado 23 y aprende cuales son los mas usuales. Una vez hecho esto deber�s volver al c�digo de tu programa ( con soft-ice pulsa F12 ) y empezar a buscar (F8 y F10). Leete los manuales, las FAQ y las referencias r�pidas. Si quieres examinar tu programa con mas tranquilidad deber�s desensamblarlo (por ejemplo con w32dasm).

 

1 1
Hosted by www.Geocities.ws