# 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ů.
# 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 -Resumekontroluje 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.
| Typ zóny | Fragmenty | Dostatečné pro Doom |
|----------|-----------|---------------------|
| Free | 185 | Ne (potřeba 7+ zón) |
| 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-DNSNamepro 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
Zatím žádné komentáře.