No vas a creer dónde han conseguido ejecutar «DOOM» esta vez

No vas a creer dónde han conseguido ejecutar «DOOM» esta vez

Olvídate de las calculadoras: hicieron correr un juego en un entorno sin sistema de archivos.

image

El desarrollador Adam Rice convirtió uno de los protocolos de Internet más aburridos en una plataforma inesperada para ejecutar juegos. Él demostró que el clásico shooter DOOM se puede cargar y ejecutar por completo a través del protocolo DNS — sin instalación, sin archivos y sin la entrega habitual de datos.

Adam Rice ha estado experimentando con registros TXT de DNS en los que se puede escribir texto arbitrario. Normalmente esos registros se usan para comprobaciones de correo o necesidades de servicio, pero no existen restricciones estrictas sobre el contenido. El desarrollador decidió ir más allá y usar DNS como almacenamiento de datos. Primero probó la idea con una imagen: dividió el archivo en partes, lo codificó en Base64 y lo colocó en registros TXT. El sistema reconstruyó el archivo sin problemas con el mismo hash.

El siguiente paso fue ejecutar un programa completo. Como demostración, Rice eligió DOOM — una prueba tradicional en plataformas "imposibles". Encontró una implementación del juego en C# llamada managed-doom y la adaptó para que funcionara completamente desde la memoria. El código fuente se modificó para que el juego no accediera al sistema de archivos ni requiriera bibliotecas nativas. Se eliminó la parte de audio para reducir el volumen de datos.

Tras la compresión, todos los componentes del juego ocuparon alrededor de tres megabytes. Rice los dividió en 1966 registros TXT en una zona DNS alojada a través de CloudFlare. La descarga tardó alrededor de 15 minutos. Para ejecutarlo escribió un script de PowerShell de unas 250 líneas, que realiza cerca de dos mil consultas DNS, recopila los datos en la memoria y arranca el juego mediante mecanismos de .NET.

Todo el proceso se realiza sin escribir archivos en el disco y sin instalar dependencias. El script simplemente recupera los datos mediante consultas DNS estándar y los ejecuta en la memoria RAM.

El experimento muestra cuán flexible puede ser DOOM y cuán vulnerable puede ser DNS. El protocolo se creó hace casi 45 años para asociar nombres de dominio con direcciones IP, pero la falta de validación estricta permite usarlo también como almacenamiento distribuido.

Rice subraya que técnicas similares ya se usan para la entrega oculta de código malicioso, y su proyecto solo llevó la idea al extremo. El código fuente del proyecto está publicado en GitHub.