Comencemos con el texto clásico: Cómo convertirse en un pirata informático.
Y ahora permítanme ofrecerles una práctica glosa sobre eso.
Un BS o MSc en Ciencias de la Computación le enseñará acerca de las clases de conceptos. Una clase de compilación le enseñará la teoría de los compiladores, una clase de sistemas operativos le enseñará la teoría de los sistemas operativos, etc. Este es un enfoque útil, excepto cuando desee conocer un compilador o sistema operativo específico . Esas clases, por lo general, no se enseñan, tal vez porque se consideran demasiado vocacionales, o tal vez porque existe una comprensión tácita de que debería poder aprender ese tipo de cosas por su cuenta.
- Cómo convertirse en un estudiante de primer nivel
- ¿Qué tengo que hacer? Acabo de pasar mi décima con 91.40%.
- Estoy dirigiendo un instituto técnico en Punjab. Los cursos que impartimos son de naturaleza totalmente práctica y tienen un gran potencial en términos de empleo (en la industria manufacturera). ¿Cómo puede el gobierno ayudarme a enseñar estos cursos a las personas que no pueden pagar sus cuotas?
- Soy mexicano y quiero estudiar en los Estados Unidos. ¿Cómo puedo quedarme allí para vivir? ¿Cuáles son todas las formas en que puedo hacer eso?
- Quiero hacer algo bueno en mi comunidad, pero soy un estudiante de secundaria y no tengo mucho tiempo. ¿Qué consejo me puedes ofrecer?
Sin embargo, lo que un BS o MSc te dará es mucho tiempo para dedicarte a aprender qué es lo que realmente quieres aprender y una comunidad que te apoya para hacer preguntas. Y si recuerdas ir a clases, eventualmente terminarás con un título que hará que encontrar el próximo trabajo sea más fácil.
Así que digamos que te inscribes en un programa de BS. ¿Cómo empiezas a convertirte en un hacker? Bueno, los piratas informáticos se ocupan de los programas, por lo que probablemente deberías entenderlos. Empecemos por uno de los más simples.
#include
int main () {
printf (“¡Hola mundo! \ n”);
devuelve 0;
}
Cuando compilo esto usando el clang en mi macbook, obtengo un binario que tiene 8548 bytes de largo. Aquí hay una pregunta de tipo hacker: ¿qué hace cada uno de esos bytes?
Responder a esa pregunta requerirá que elija una buena cantidad de lenguaje ensamblador, que comprenda (quizás) a los vinculadores y cargadores, así como a herramientas como objdump (o al menos el desensamblador de su depurador), y que lea las interfaces binarias de la aplicación. A partir de ahí, podría interesarse en cómo un compilador tradujo su C en esas instrucciones o en cómo esas instrucciones interactúan con el sistema operativo. Para demostrar que comprendes, puedes crear el “Hola, mundo!” puede pensar en binario, o podría pensar en cómo podría ofuscar el binario para que no sea del todo obvio lo que eventualmente hará.
En ese momento, estás listo para comenzar a pensar en los virus (y en la teoría de los virus) en lugar de ser solo otro guión infantil. Definitivamente hay Ph.D. programas que le permitirán concentrarse en esto, por lo que si aún está interesado, puede solicitar uno de esos y pasar los próximos siete años averiguando cómo funcionan y cómo pueden detectarse y mitigarse.
Puede que hayas notado que me salté un paso importante. Has compilado “hola, mundo!”, Tal vez hayas ejecutado el binario resultante a través de “objdump –disassemble” … ¿ahora que?
Eso depende de usted. En algún momento, solo tienes que sumergirte, comenzar a buscar en Google y juntar las piezas por ti mismo. Si puedes descubrir cómo hacerlo, no tendrás ninguna dificultad insuperable.
¡Buena suerte!