Cita:
Si tuviera el código de dicha aplicación en formato hexadecimal, gracias a un editor hexadecimal, o incluso con Ollydbg, ¿podría inyectar manualmente dicho código y ver si muestra el mensaje en pantalla?
Si. De hecho, las inyecciones de códigos se basan en eso, en modificar una o varias instrucciones de un programa/proceso por otras. La forma de hacerlo es lo que diferencia una técnica de otra. Del mismo modo cuando se dice "
Cita:
La segunda duda es cómo puedo programar en ensamblador en Windows. Leí acerca del tema, y hacía falta MASM y LINK, pero no los encuentro, y me remiten al DDK de Windows, el cual es un archivo bastante extenso. Hace tiempo usé MASM.EXE y LINK.EXE y funcionaba bien, siguiendo la estructura de un código en ASM, pero ahora no los encuentro. ¿Sabéis donde puedo encontrarlo? En caso de que no sea necesario, ¿qué otra alternativa hay?
Puesto que tu caso se remonta simplemente a programar en ensamblador bajo arquitectura x86 (siguiendo el juego de instrucciones IA32), entonces puedes emplear cualquier entorno que permita la programación en ensamblador. No tiene por qué ser un entorno específico o un compilador que trate a bajo nivel. Puedes usar por ejemplo C, y utilizar la directiva "__asm" del compilador o también puedes utilizar Delphi haciendo uso de la directiva "asm", y un largo etc...