En este tutorial voy a explicar lo básico para iniciarse en el mundo del craking, ya que los conocimientos de la ingeniería inversa son realmente amplios y pueden resultar confusos para los no iniciados.
¿En que consiste la ingeniería inversa?
The reverse engineering o ingeniaría inversa mas conocida como cracking consiste básicamente en reventar protecciones de software o hardware.El objetivo de un verdadero cracker ha de ser estudiar la seguridad de sistemas de protección tanto de software como de hardware con el objetivo de aprender de ellos y obtener un beneficio educativo sin ánimo de lucro.Claro que también hay crackers que se dedican a fines menos didácticos, pero eso sucede en casi todas las ramas de especialistas y no es razón para desvirtualizar a un colectivo únicamente porque haya personas que los usen mal, porque por ese mismo motivo, cualquier persona que tenga acceso a material susceptible de ser mal empleado, como por ejemplo, un farmaceutico,o un fabricante de armas, ¿ debe ser considerado un delincuente? Creo que esta clara la respuesta, el problema no son las cosas en si mismas, sino las intenciones de las personas que las utilizan.
¿Cualquiera puede ser un cracker?
Cualquiera que tenga tiempo para dedicarle, porque esto no se aprende en dos días, debe tener conocimientos de software y hardware y además de programación general y assembler en particular.
¿Es difícil aprender a crackear?
En principio no, claro eso depende también de tu nivel inicial, si no sabes lo básico te costara mas. Luego a medida que te vayas especializando y vayas subiendo el nivel, el aprendizaje se endurece.
¿Que necesito?
Este punto lo voy a resumir, porque si bien la lista de herramientas y utilidades disponibles para llevar a cabo las técnicas del crackeo son bastantes, solo voy a centrarme en lo imprescindible para comenzar el aprendizaje.
* Depurador o debugger es un programa que permite depurar o limpiar los errores de otro programa informático. Esta aplicación nos va a premitir detenernos en las instrucciones del programa para poder cambiarlas o parchearlas. Hay muchos depuradores; TRW2000, Debug, etc,OLLYDBG aunque el más común es el Soft Ice o SICE ,aunque también puede ser el mas complejo de usar.
* Desensamblador o dissasembler Es un programa de ordenador que traduce lenguaje máquina (código binario) a lenguaje ensamblador, es la operación inversa a la que realiza un ensamblador. A diferencia del depurador no lo hace cuando el programa se esta ejecutando, si no que cuando nosotros queramos abrimos el ejecutable con el desensamblador y estudiamos el código todo el tiempo que queramos, a esto se le llama listado muerto. Variedades de dissasembler; IDA Pro, Sourcer 7 y el desensamblador usado por la mayoría W32Dasm y del que hablaremos más adelante.
* Editor Hexadecimal (o editor de archivos binarios) es un tipo de programa informático que permite modificar archivos binarios permitiéndonos hacer conversiones de binario a decimal y viceversa. Entre los editores hexadecimales mas conocidos se encuentran Hackers View (DOS 32 bits), Ultraedit, y Hex Workshop.
* Conocimientos de assembler El lenguaje ensamblador (ASM) es la base en la que se apoyan todas estas herramientas por lo que cuanto mas aprendamos sobre este lenguaje mucho más rápido aprenderemos a manejarlas. Assembler es un lenguaje de bajo nivel, lo que significa que constituye la representación más directa del código máquina específico para cada arquitectura de computadoras legible por un programador. Es un lenguaje complejo de aprender y si bien al principio puedes omitirlo, si realmente quieres profundizar en esto del cracking, mas tarde o mas temprano tendrás que ponerte a ello y cuanto antes empieces mejor.
¿Por donde empezar?
Una vez tengamos claro lo que nos hace falta y tengamos acceso a ello deberemos de familiarizarnos con las herramientas; los editores hexadecimales son fáciles de usar siempre y cuando tengamos nociones básicas de los sistemas numéricos decimal y binario, lo que vienen a ser conceptos de matemáticas general por lo que si no se tienen esos conocimientos o están oxidados recomiendo repasarlos antes. Resulta mas que conveniente que comencemos a familiarizarnos con el lenguaje ensamblador y seria recomendable que desamblemos algún programa como prueba para observar su estructura, esta practica nos servirá para manejar el W32Dasm .Respecto al Soft Ice, es un programa complejo con muchas aplicaciones por lo que antes de hacer ninguna practica con el deberemos haber leído minuciosamente algún manual explicativo y tener asimilado el funcionamiento básico del programa.
Articulo escrito por S3L3N1TY para Hacker's Land.
No hay comentarios :