Respuestas
Centrándome en el Sistema Operativo Windows, aprender qué hace un determinado programa y cómo lo hace, nos puede ayudar a comprender muchísimas cosas de este entorno Windows y tal vez a ser mejores programadores:
¿Qué tipos de ejecutables existen? ¿Todos se depuran de la misma forma?¿Por qué los ejecutables tienen un encabezado? ¿Qué información hay en ese encabezado (header en inglés)?¿Cómo se analiza un virus y qué modifica?¿Cómo se modifica un programa?¿Cómo puedo depurar mi programa para buscar errores?Una vez que he aprendido a depurar, ¿cómo puedo mejorar la protección de mi software?De momento son muchas preguntas. Desde mi punto de vista y experiencia, la ingeniería inversa y debido a la versatilidad de todo lo que conlleva la programación de software, es un "arte" complejo, considerado por muchos como avanzado, que requiere muchísimas horas de práctica y estudio y que puede "engancharte" y crearte una pequeña adicción diaria (todo sea por aprender).
Antes de continuar y como siempre digo, respeta las leyes y las licencias de los programas. No depures programas cuya licencia no lo permita. Si quieres depurar legalmente, busca CrackMEs en Internet
es un pequeño programa (CrackME) que he programado directamente en ensamblador para Windows y está específicamente diseñado para que lo depures y lo analices. Hoy aprenderás a entender algunas API de Windows, a saber cómo se crea una ventana y a conocer los mensajes de Windows de esa ventana. Analizaremos un poco los recursos y finalmente verás cómo conocer la contraseña correcta. Si recién empiezas depurando tus aplicaciones, seguro que lo de hoy te gustará (o eso espero).