Zpět na domů

Doom přes DNS: spuštění bez souborů

Projekt Doom Over DNS umožňuje spouštět shareware verzi Doom výhradně prostřednictvím veřejných DNS dotazů na TXT záznamy Cloudflare. Komprimovaný WAD se rozdělí na fragmenty, načte se do paměti PowerShell bez zápisu na disk. Podporováno obnovení a škálování na placené zóny.

Hraj Doom přes DNS dotazy bez disku
Advertisement 728x90

# Doom přes DNS: spuštění klasické střílečky přes DNS záznamy

Vývojář Adam Rice implementoval spuštění shareware verze Doom výhradně přes DNS TXT záznamy v Cloudflare. Hra je zkomprimována do 1964 fragmentů, načítá se přes veřejné DNS dotazy a spouští se v PowerShell 7 bez zápisu WAD souboru na disk. DLL herního .NET enginu se načtou přímo do paměti. Projekt obchází omezení souborového úložiště tím, že používá DNS jako transport pro binární data.

Instalace a spuštění

Pro spuštění je potřeba PowerShell 7 a API token Cloudflare s právy na úpravu DNS zón.

  • Nainstalujte PowerShell 7: winget install Microsoft.PowerShell
  • Nastavte přihlašovací údaje Cloudflare: použijte modul TXTRecords a příkaz Set-CFCredential.
  • Spusťte hru: \/.\Start-DoomOverDNS.ps1 -PrimaryZone 'example.com'

Skript automaticky načítá data přes Resolve-DNSName. V bezplatné zóně Cloudflare se vejde 185 fragmentů, v Pro/Business/Enterprise až 3400. WAD soubor vyžaduje ~1199 fragmentů.

Google AdInline article slot
# Example run with neskolkimi zonami for besplatnogo akkaunta
.\Start-DoomOverDNS.ps1 -Zones @('zone1.com', 'zone2.com', 'zone3.com')

Umístění dat v DNS zónách

Projekt rozděluje zkomprimovaný WAD na TXT záznamy. Pro bezplatné účty je potřeba několik domén — modul distribuuje fragmenty automaticky. V Pro zóně se celá hra vejde.

Obnovení načítání:

  • Příkaz Publish-TXTStripe -Resume kontroluje hash fragmentů.
  • Pokračuje od posledního platného bloku a vyhýbá se opakovanému přenosu.

Omezení TXT záznamů (RFC 1035) se ignorují: DNS se používá jako distribuované úložiště s globálním cachováním na edge uzlech Cloudflare.

Google AdInline article slot

| Typ zóny | Fragmenty | Dostatečné pro Doom |

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

| Free | 185 | Ne (potřeba 7+ zón) |

Google AdInline article slot

| Pro | 3400 | Ano (celá hra) |

Technické detaily komprese a dekomprese

WAD soubor se komprimuje pro minimalizaci velikosti TXT záznamů. PowerShell skript dekomprimuje data on-the-fly během spuštění. Žádné lokální úložiště — všechny operace probíhají v paměti.

Klíčové komponenty modulu TXTRecords:

  • Publish-TXTStripe: publikování fragmentů s podporou obnovení.
  • Set-CFCredential: nastavení API tokenu.
  • Integrace s Resolve-DNSName pro veřejné dotazy.

Projekt demonstruje možnosti DNS pro přenos libovolných binárních dat a obchází typická omezení protokolu.

Co je důležité

  • Doom se spouští bez souborů na disku: WAD a DLL se načtou do paměti z DNS TXT.
  • Vyžaduje ~1199 fragmentů pro WAD; bezplatné zóny Cloudflare mají 185 fragmentů.
  • Podpora obnovení načítání podle hashu fragmentů.
  • Používá PowerShell 7 a veřejné DNS dotazy bez vlastního serveru.
  • Škáluje na Pro účty: jedna zóna pro celou hru.

— Editorial Team

Advertisement 728x90

Číst dál