Volver al inicio

Doom vía DNS: lanzamiento sin archivos

El proyecto Doom Over DNS permite ejecutar la versión shareware de Doom exclusivamente a través de consultas DNS públicas a registros TXT de Cloudflare. El WAD comprimido se divide en fragmentos, se carga en la memoria de PowerShell sin escribir en disco. Soporta reanudación y escalado a zonas pagadas.

Juega Doom vía consultas DNS sin disco
Advertisement 728x90

Doom sobre DNS: Lanzando el clásico shooter vía registros DNS

El desarrollador Adam Rice implementó la ejecución de la versión shareware de Doom exclusivamente a través de registros TXT de DNS en Cloudflare. El juego está comprimido en 1964 fragmentos, cargados mediante consultas DNS públicas, y se ejecuta en PowerShell 7 sin escribir el archivo WAD en disco. Las DLL del motor de juego .NET se cargan directamente en memoria. El proyecto elude las limitaciones de almacenamiento de archivos utilizando DNS como transporte para datos binarios.

Instalación y ejecución

Para ejecutarlo, necesitas PowerShell 7 y un token de API de Cloudflare con permisos para editar zonas DNS.

  • Instala PowerShell 7: winget install Microsoft.PowerShell
  • Configura las credenciales de Cloudflare: usa el módulo TXTRecords y el comando Set-CFCredential.
  • Ejecuta el juego: \.\Start-DoomOverDNS.ps1 -PrimaryZone 'example.com'

El script carga los datos automáticamente mediante Resolve-DNSName. Una zona gratuita de Cloudflare contiene 185 fragmentos; Pro/Business/Enterprise hasta 3400. El archivo WAD requiere ~1199 fragmentos.

Google AdInline article slot
# Ejemplo de ejecución con múltiples zonas para una cuenta gratuita
.\Start-DoomOverDNS.ps1 -Zones @('zone1.com', 'zone2.com', 'zone3.com')

Colocando datos en zonas DNS

El proyecto divide el WAD comprimido en registros TXT. Para cuentas gratuitas, se necesitan múltiples dominios — el módulo distribuye los fragmentos automáticamente. En una zona Pro, cabe todo el juego.

Reanudación de descarga:

  • El comando Publish-TXTStripe -Resume verifica los hashes de fragmentos.
  • Continúa desde el último bloque válido, evitando retransmisiones.

Los límites de registros TXT (RFC 1035) se ignoran: DNS se usa como almacenamiento distribuido con caché global en los nodos edge de Cloudflare.

Google AdInline article slot

| Tipo de zona | Fragmentos | Suficiente para Doom |

|--------------|------------|----------------------|

| Free | 185 | No (se necesitan 7+ zonas) |

Google AdInline article slot

| Pro | 3400 | Sí (juego completo) |

Detalles técnicos de compresión y descompresión

El archivo WAD está comprimido para minimizar los tamaños de registros TXT. El script de PowerShell descomprime los datos sobre la marcha durante la ejecución. Sin almacenamiento local — todas las operaciones en memoria.

Componentes clave del módulo TXTRecords:

  • Publish-TXTStripe: publicación de fragmentos con soporte para reanudación.
  • Set-CFCredential: configuración del token de API.
  • Integración con Resolve-DNSName para consultas públicas.

El proyecto demuestra las capacidades de DNS para transmitir datos binarios arbitrarios, eludiendo las limitaciones típicas del protocolo.

Puntos clave

  • Doom se ejecuta sin archivos en disco: WAD y DLL cargadas en memoria desde TXT de DNS.
  • Requiere ~1199 fragmentos para WAD; zonas gratuitas de Cloudflare — 185 fragmentos.
  • Soporta reanudación de descarga mediante hashes de fragmentos.
  • Usa PowerShell 7 y consultas DNS públicas sin servidor personalizado.
  • Escala a cuentas Pro: una zona para el juego completo.

— Editorial Team

Advertisement 728x90

Leer después