Powrót do strony głównej

Doom przez DNS: uruchomienie bez plików

Projekt Doom Over DNS pozwala uruchamiać wersję shareware Doom wyłącznie przez publiczne zapytania DNS do rekordów TXT Cloudflare. Skompresowany WAD dzielony jest na fragmenty, ładowany do pamięci PowerShell bez zapisywania na dysk. Obsługiwane jest wznawianie i skalowanie na płatne strefy.

Graj w Doom przez zapytania DNS bez dysku
Advertisement 728x90

# Doom Over DNS: uruchomienie klasycznego shootera za pomocą rekordów DNS

Deweloper Adam Rice zrealizował uruchomienie wersji shareware gry Doom wyłącznie za pomocą rekordów DNS TXT w Cloudflare. Gra jest skompresowana do 1964 fragmentów, ładowana za pomocą publicznych zapytań DNS i uruchamiana w PowerShell 7 bez zapisywania pliku WAD na dysk. DLL silnika gry .NET są ładowane bezpośrednio do pamięci. Projekt omija ograniczenia przechowywania plików, używając DNS jako transportu dla danych binarnych.

Instalacja i uruchomienie

Do uruchomienia wymagane jest PowerShell 7 oraz token API Cloudflare z prawami edycji stref DNS.

  • Zainstaluj PowerShell 7: winget install Microsoft.PowerShell
  • Skonfiguruj dane uwierzytelniające Cloudflare: użyj modułu TXTRecords i polecenia Set-CFCredential.
  • Uruchom grę: \.\Start-DoomOverDNS.ps1 -PrimaryZone 'example.com'

Skrypt automatycznie pobiera dane za pomocą Resolve-DNSName. W darmowej strefie Cloudflare mieści się 185 fragmentów, w Pro/Business/Enterprise — do 3400. Plik WAD wymaga ~1199 fragmentów.

Google AdInline article slot
# Przykład uruchomienia z wieloma strefami dla darmowego konta
.\Start-DoomOverDNS.ps1 -Zones @('zone1.com', 'zone2.com', 'zone3.com')

Rozmieszczanie danych w strefach DNS

Projekt dzieli skompresowany WAD na rekordy TXT. Dla darmowych kont potrzebne są kilka domen — moduł rozdziela fragmenty automatycznie. W strefie Pro cała gra mieści się w całości.

Wznawianie pobierania:

  • Polecenie Publish-TXTStripe -Resume sprawdza hashe fragmentów.
  • Kontynuuje od ostatniego poprawnego bloku, unikając ponownego przesyłania.

Ograniczenia rekordów TXT (RFC 1035) są ignorowane: DNS jest używany jako rozproszone khranilische z globalnym buforowaniem na węzłach edge Cloudflare.

Google AdInline article slot

| Typ strefy | Fragmenty | Wystarczy dla Doom |

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

| Free | 185 | Nie (potrzeba 7+ stref) |

Google AdInline article slot

| Pro | 3400 | Tak (pełna gra) |

Szczegóły techniczne kompresji i dekompresji

Plik WAD jest kompresowany w celu minimalizacji rozmiaru rekordów TXT. Skrypt PowerShell dekompresuje dane na bieżąco podczas wykonywania. Brak lokalnego przechowywania — wszystkie operacje w pamięci.

Kluczowe komponenty modułu TXTRecords:

  • Publish-TXTStripe: publikacja fragmentów z obsługą wznawiania.
  • Set-CFCredential: konfiguracja tokena API.
  • Integracja z Resolve-DNSName dla publicznych zapytań.

Projekt demonstruje możliwości DNS do przesyłania dowolnych danych binarnych, omijając typowe ograniczenia protokołu.

Co ważne

  • Doom uruchamia się bez plików na dysku: WAD i DLL są ładowane do pamięci z DNS TXT.
  • Wymaga ~1199 fragmentów dla WAD; darmowe strefy Cloudflare — 185 fragmentów.
  • Obsługa wznawiania pobierania na podstawie hashy fragmentów.
  • Używa PowerShell 7 i publicznych zapytań DNS bez niestandardowego serwera.
  • Skaluje się na konta Pro: jedna strefa na pełną grę.

— Editorial Team

Advertisement 728x90

Czytaj dalej