Cracking & Anti Cracking

19
CRACKING & ANTICRACKING

Transcript of Cracking & Anti Cracking

Page 1: Cracking & Anti Cracking

CRACKING & ANTICRACKING

Page 2: Cracking & Anti Cracking

Cracking: Ataque y defensa del software

• Cracking no es sinónimo de violación de la protección del software, sino que constituye un método para probar la resistencia del programa frente a los posibles ataques y su posterior difusión ilegal. Resulta prácticamente imposible crear una protección inviolable, lo que no significa que todas las protecciones estén condenadas al fracaso y que no puedan cumplir su misión.

Page 3: Cracking & Anti Cracking

¿En qué consiste el cracking?

• El cracking se puede describir como el grupo de técnicas empleadas para codificar, analizar y estudiar los principios de un programa sin disponer de su código fuente. Por ejemplo cuando un desarrollador crea un programa, comienza escribiendo el código fuente en el lenguaje de programación elegido para compilar y ejecuta. De esta manera nadie podría editar el programa sin disponer del código fuente y realizar de nuevo la compilación pero esto es falso, y es precisamente en lo que el cracking se basa.

Page 4: Cracking & Anti Cracking

¿Utilizando ingeniería inversa?

• La técnica de ingeniería inversa constituye la piedra angular del cracking, esta se basa en la descompilación, o compilación inversa, de un programa a un lenguaje de programación, generalmente el más básico es ensamblador. Existen descompiladores capaces también de descompilar un programa a un lenguaje de programación de alto nivel.

• Puede llegar a anularse una buena parte de los sistemas de protección sin practicar ninguna modificación al programa: hallando la contraseña. El número de registro, etc., e incluso simplemente estudiando el código del programa.

Page 5: Cracking & Anti Cracking

Herramientas de cracking elementales

• El procedimiento básico consiste en las descompilación de un programa en un lenguaje de programación, a ensamblador en la mayoría de las ocasiones. El cracker podrá estudiar el programa de forma pasiva, desensamblarlo con un desensamblador (descompilador que efectúa una compilación inversa en ensamblador) de esta manera se obtiene su código ensamblador estático, o bien aplicar un programa de depuración, un debugger.

Page 6: Cracking & Anti Cracking

Herramientas de cracking elementales

• El cracker también puede hacer uso de un depurador. Al constituir uno de los pasos claves el uso frecuente de algún depurador (debugger) para realizar el análisis del programa, resulta pertinente intentar evitar su utilización. Razón que conduce a los infractores a aplicar distintos métodos y programas que enmascaren su depurador. Por ejemplo, un programa empleado para detectar un depurador se denomina «FrogsIce».

Page 7: Cracking & Anti Cracking

Herramientas de cracking elementales

• Si se efectuaran alteraciones al código del programa, estas deberán guardarse en algún lado. Con este propósito existen varios editores hexadecimales, alternativamente, se puede modificar el código del programa directamente en memoria mediante un cargador.

• También figuran los volcadores, programas diseñados para guardar en disco el contenido de la memoria. Muy útiles para almacenar datos importantes descodificados por el programa automáticamente. ProcDump representa un buen ejemplo: es un volcador y descodificador que también incluye otras muchas funciones.

Page 8: Cracking & Anti Cracking

• Depurador (debugger): Son programas originalmente creados para corregir errores en otros programas informáticos, pudiendo abrir cualquier ejecutable (.exe) en el leguaje ASM indistintamente de cual haya sido el lenguaje original del programa (entienden ahora la importancia del ASM, hay que aprenderlo). Con este programa podemos ejecutar cada instrucción del programa y detenernos en cualquier momento o en el momento en que el programa toma la decisión de estar registrados o no y poder cambiar el código a nuestro beneficio.

•Uno de los depuradores mas famosos sin duda es softice también apodado la “bestia negra” por su apariencia tipo m-dos y por lo poderoso que podía ser para crackear programas.

Page 9: Cracking & Anti Cracking

• Desamblador (disassembler): Programa que te permite ver cualquier ejecutable en leguaje ASM así como referencias de texto entre otras. La principal diferencia con un debugger es que el desamblador podemos ver el código en ASM y el debugger podemos interactuar con el (ejecutar, modificar). Un desamblador bastante útil es W32dasm que también es debugger, pero se usa mas que nada solo como desamblador ya que si queremos un buen debugger esta olly que lo supera ampliamente .

Page 10: Cracking & Anti Cracking

• Editor hexadecimal: Programa que te permite editar cualquier archivo de forma hexadecimal. Todo el código ensamblador tiene su correspondiente en hexadecimal, los debugger y desensambladores traducen estos a las instrucciones que vemos normalmente. Podemos hacer una modificación en el ejecutable de dos formas. La primera es con un editor hexadecimal y la otra es con el mismo olly.

• La desventaja de hacerlo con un editor es que si queremos modificar una instrucción en ensamblador tenemos que saber el correspondiente en hexadecimal y si lo hacemos con olly lo modificamos directamente por la instrucción que queremos.

• Algunos editores son el Ultraedit y el hex workshop.

Page 11: Cracking & Anti Cracking

• Monitor del registro: Programa que sirve para vigilar el registro de windows. En ocasiones los programas guardan datos en el registro, datos como seriales, nombres de usuario, fecha de instalación entre otros. Por lo tanto hay que tener en cuanta este tipo de programas que los puede servir mucho. Un ejemplo monitor de registro de Regmon

•  Monitor de archivos: Programa que sirve para vigilar posibles vínculos con archivos. Algo parecido al monitor de registro con la diferencia obvia en que este monitorea archivos ya sea del tipo dat .txt lo que sea. Este tipo de programas es menos útil que el monitor de registro ya que casi siempre los programas guardan los datos en el registro de windows.

Page 12: Cracking & Anti Cracking

• Descompresores: Algunos programas utilizan distintos tipos de compresiones sin que estos varíen la extensión .exe lo que hace más difícil crackear, ya que al estar comprimidos no estamos analizando un ejecutable normal.

• Los compresores más famosos son UPX, ASprotect, ASPack, armadillo, PECompressor, etc.

•Los descompresores tienen multitud de nombres casi todos incluyen el mismo nombre del compresor Ej. Aspackdie. 

Page 13: Cracking & Anti Cracking

•Cracker n. El que rompe la seguridad de un sistema. Acuñado hacia 1985 por hackers en defensa ante la utilización inapropiada por periodistas del término hacker. Falló un intento anterior de establecer «gusano» en este sentido en 1981-1982 en Usenet.

• La utilización de ambos neologismos refleja una fuerte repulsión contra el robo y vandalismo perpretado por los círculos de crackers. Aunque se supone que cualquier hacker auténtico ha jugado con algún tipo de crackeo y conoce muchas de las técnicas básicas, se supone que cualquiera que haya pasado la etapa larval ha desterrado el deseo de hacerlo con excepción de razones prácticas inmediatas (por ejemplo, si es necesario pasar por alto algún sistema de seguridad para completar algún tipo de trabajo.)

Page 14: Cracking & Anti Cracking

• Por lo tanto, hay mucho menos en común entre el mundo de los hackers y de los crackers de lo que el lectormundano, confundido por el periodismo sensacionalista, pueda suponer. Los crackers tienden a agruparse en grupos pequeños, muy secretos y privados, que tienen poco que ver con la poli-cultura abierta y enorme que se describe en este diccionario; aunque los crackers a menudo se definen a sí mismos como hackers, la mayor parte de los auténticos hackers los consideran una forma de vida inferior.

Page 15: Cracking & Anti Cracking

A Short History of Hacking

• A Short History of Hacking es un resumen altamente comprimido de la historia del hacking (a lo que habría que añadir más apropiadamente y del cracking, por aquello de los matices). No conocía la mención que hacen a que fue John «mente maravillosa» Nash fue quién acuñó la acepción moderna de hacker (el término viene de antiguo, significaba originalmente «originalmente, «alguien que fabrica muebles con un hacha»).

Page 16: Cracking & Anti Cracking
Page 17: Cracking & Anti Cracking
Page 18: Cracking & Anti Cracking
Page 19: Cracking & Anti Cracking