El principal que conozco, como se mencionó anteriormente, está relacionado con el malware. Una de las principales tareas de los investigadores que trabajan para las empresas de escáner es tomar una muestra y depurarla en un laboratorio o entorno virtual.
En la misma línea, hay muchas áreas relacionadas con la seguridad que utilizan ingeniería inversa/desmontaje. La informática forense es un área en la que es posible que desee estudiar. Una computadora confiscada podría contener programas de comando y control (pero no de origen) para diversas actividades (botnet de comando y control, programas de ataque DoS, etc.). Por lo general, es mucho más fácil eludir los esquemas de datos protegidos mediante la ingeniería inversa del programa que protege en lugar de averiguar la contraseña o clave.
La protección DRM/de seguridad, tanto en hardware como en software, es una gran área de ingeniería inversa.Tenga en cuenta que esto podría estar en el "lado" del problema (y la ley). Considere programas de copia de DVD, eliminación de protección, la capacidad de reproducir música de iTunes en otros dispositivos, la capacidad de ejecutar programas de homebrew en Wii, paralelizar una grilla de PS3, desbloquear un iPhone, etc., obviamente, también hay muchas opciones no legales (revés) diseñar un temporizador de máquina tragamonedas, autenticación de máquina ATM, etc.).
La conversión del programa heredado es una gran oportunidad en muchas áreas, especialmente gobierno, finanzas, manufactura, etc. Hay programas de misión crítica que se ejecutan desde hace 30 años en un antiguo mainframe o mini que nadie tiene código fuente. Los equipos tienen que aplicar ingeniería inversa al programa para convertirlo en algo más nuevo.
Las otras sugerencias sobre el aprendizaje de tutoriales de Win32 son geniales. Además, lamentablemente, algunos de los mejores trabajos publicados serán sobre cracking (juegos). Busque en eso y hay algunos tutoriales que muestran los conceptos básicos. Una clase que tomé usó el libro "El arte de la investigación y defensa del virus informático" de Peter Szor, pero era más pesado sobre las ideas de malware y no sobre la parte exacta del desmontaje.
Dependiendo de la ruta que tome, necesitará un fondo en otras cosas, pero conocer el ensamblaje va a ser su habilidad más importante. No solo desde el punto de vista de "Yo entiendo lo que hace ese código en su mayoría", usted debería ser capaz de escribir cosas desde cero y comprender exactamente qué hace un bit dado de código y comprender otras formas en que podría escribirse el mismo código. El ensamblaje (codificación) implica encontrar una solución a un problema y codificarlo. El desmontaje implica descubrir cuál de muchas soluciones diferentes se utilizó inicialmente para resolver el problema - MUCHO más difícil;)
+1 para ilustrar los diversos campos que puede visitar. Comencé a aprender la desprotección ya que el malware era un concepto desconocido en aquel entonces. Intente mejorar el Bloc de notas o la Calculadora a través de los códigos ASM, esa es una buena manera de comenzar a aprender a sentir el código :) – anonymous