Retour à l'accueil

Doom via DNS : lancement sans fichiers

Le projet Doom Over DNS permet d'exécuter la version shareware de Doom exclusivement via des requêtes DNS publiques vers les enregistrements TXT Cloudflare. Le WAD compressé est divisé en fragments, chargé en mémoire PowerShell sans écriture sur disque. Prend en charge la reprise et la mise à l'échelle vers les zones payantes.

Jouez à Doom via des requêtes DNS sans disque
Advertisement 728x90

Doom via DNS : Lancer le shooter classique grâce aux enregistrements DNS

Le développeur Adam Rice a mis en œuvre l'exécution de la version shareware de Doom exclusivement via des enregistrements DNS TXT dans Cloudflare. Le jeu est compressé en 1964 fragments, chargés via des requêtes DNS publiques, et s'exécute dans PowerShell 7 sans écrire le fichier WAD sur disque. Les DLL du moteur de jeu .NET sont chargées directement en mémoire. Le projet contourne les limitations de stockage de fichiers en utilisant DNS comme transport pour les données binaires.

Installation et lancement

Pour le lancer, vous avez besoin de PowerShell 7 et d'un jeton API Cloudflare avec les permissions pour modifier les zones DNS.

  • Installez PowerShell 7 : winget install Microsoft.PowerShell
  • Configurez les identifiants Cloudflare : utilisez le module TXTRecords et la commande Set-CFCredential.
  • Lancez le jeu : \.\Start-DoomOverDNS.ps1 -PrimaryZone 'example.com'

Le script charge automatiquement les données via Resolve-DNSName. Une zone Cloudflare gratuite contient 185 fragments ; Pro/Business/Enterprise jusqu'à 3400. Le fichier WAD nécessite ~1199 fragments.

Google AdInline article slot
# Exemple de lancement avec plusieurs zones pour un compte gratuit
.\Start-DoomOverDNS.ps1 -Zones @('zone1.com', 'zone2.com', 'zone3.com')

Stockage des données dans les zones DNS

Le projet divise le WAD compressé en enregistrements TXT. Pour les comptes gratuits, plusieurs domaines sont nécessaires — le module distribue les fragments automatiquement. Dans une zone Pro, tout le jeu tient.

Reprise du téléchargement :

  • La commande Publish-TXTStripe -Resume vérifie les hachages des fragments.
  • Continue à partir du dernier bloc valide, évitant la retransmission.

Les limites des enregistrements TXT (RFC 1035) sont ignorées : DNS est utilisé comme stockage distribué avec mise en cache globale sur les nœuds edge de Cloudflare.

Google AdInline article slot

| Type de zone | Fragments | Suffisant pour Doom |

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

| Gratuit | 185 | Non (nécessite 7+ zones) |

Google AdInline article slot

| Pro | 3400 | Oui (jeu complet) |

Détails techniques de la compression et de la décompression

Le fichier WAD est compressé pour minimiser les tailles des enregistrements TXT. Le script PowerShell décompresse les données à la volée pendant l'exécution. Pas de stockage local — toutes les opérations en mémoire.

Composants clés du module TXTRecords :

  • Publish-TXTStripe : publication des fragments avec support de reprise.
  • Set-CFCredential : configuration du jeton API.
  • Intégration avec Resolve-DNSName pour les requêtes publiques.

Le projet démontre les capacités de DNS pour transmettre des données binaires arbitraires, contournant les limitations typiques du protocole.

Points clés

  • Doom s'exécute sans fichiers sur disque : WAD et DLLs chargés en mémoire depuis DNS TXT.
  • Nécessite ~1199 fragments pour le WAD ; zones Cloudflare gratuites — 185 fragments.
  • Supporte la reprise du téléchargement par hachages de fragments.
  • Utilise PowerShell 7 et requêtes DNS publiques sans serveur personnalisé.
  • Scalable pour les comptes Pro : une zone pour le jeu complet.

— Editorial Team

Advertisement 728x90

Lire ensuite