Was het weer DNS? Ja, natuurlijk was het weer DNS, het is immers altijd DNS. Dit keer gebruikte een creatieve hacker DNS om Doom te spelen. Adam Rice wist de game te porten naar een kleine 2000 DNS-records en zo direct te spelen, zonder dat er schijfruimte nodig is. Dat is ook wel handig in deze tijden van schaarste.
Programmeur Adam Rice beschrijft op zijn blog hoe hij Doom wist te porten naar het Domain Name System, voor zover bekend de eerste keer dat Doom daar draait. Rice begon zijn experiment met het idee dat hij zijn filmverzameling weleens in DNS-records zou kunnen opslaan, specifieker: in de TXT-records van DNS. TXT is bedoeld om kleine stukjes tekst te verwerken, in de praktijk om bijvoorbeeld SPF of DKIM om e-mailadressen te verifiëren. TXT-records worden ook vaak gebruikt om grapjes te maken, omdat er zo'n 2000 tekens in passen – of Doom dus.
Rice wilde aanvankelijk kijken of hij films met base64 kon coderen naar een string, die string opsplitsen en in een TXT-record zetten, en vervolgens de juiste metadata gebruiken om de strings weer op de juiste manier bij elkaar te zetten. Dat lukte aanvankelijk met een foto van een eend, zegt hij, maar dat vond hij saai. Een film van een gigabyte was dan weer iets te ambitieus: dat zou 670.000 records kosten en dat is dan weer overdreven voor een hobbyproject.
Zo kwam hij bij Doom uit. Hij vond een C#-port van de originele Doom-engine, die hij zo aanpaste dat die vanuit geheugen kon werken. Na wat compressie wist hij het bestand in 1966 TXT-records te stoppen, genoeg om ze in een enkele DNS-zone te proppen. Zelf met Doom-over-DNS aan de slag gaan is eenvoudig. Doomslayers moeten PowerShell 7 installeren en kunnen alle informatie verder vinden in Rice' GitHub-repo.
/i/2008084708.png?f=imagenormal)