Todavía estoy en la universidad para obtener un título en seguridad informática y tomé mi primera clase basada en lenguaje ensamblador el último semestre. Nos referimos al tema de la ingeniería inversa y por qué es una parte importante de la lucha contra el malware y las aplicaciones malintencionadas.
Durante mi clase, usamos principalmente IDA pro, pero también verificamos algunas aplicaciones similares y gratuitas basadas en navegador.
En estas aplicaciones, pudimos obtener tanta información sobre las instrucciones y el código de bajo nivel que me preguntaba por qué incluso necesitamos un humano para revisar y recrear los idiomas de nivel superior (como escribir una versión 'C' de una pieza de malware).
Aquí mi pregunta:
¿Por qué un programa no puede usar la información que está presente en el código de ensamblaje y convertirla en un lenguaje simplista automáticamente?
Entiendo que no se vería exactamente igual que cuando se escribió por primera vez, pero ¿no debería ser posible recrearlo de una manera que facilite su lectura y seguimiento?
Es solo algo que no puedo entender, ¡gracias!