DOOM Over DNS (github.com)

by Venn1 87 comments 344 points
Read article View on HN

87 comments

[−] ktpsns 50d ago
To clarify, a good title would be "Loading Doom entirely from DNS records"

Neither one plays Doom over DNS nor is the first paragraph in the README correct, because DNS is only abused for storage, not for computing/processing/executing instructions:

> At some point, a reasonable person asked "DNS resolves names to IP addresses, what else can it do?" The answer, apparently, is run DOOM.

[−] drob518 50d ago
Yup. A better title might be “Author discovers data can be stored in DNS TXT records which were created to store data.”
[−] deathanatos 50d ago
Data can be stored in A records, too, just less efficiently.

(Or AAAA, or CNAME, or…)

[−] sta1n 50d ago
[dead]
[−] uuddlrlrbaba 50d ago
Or how about "pedantic HN users making comments about titles"
[−] DJBunnies 50d ago
And the cycle won't be complete without such a meta "analysis."
[−] akdev1l 50d ago
Also we could probably achieve this by using dnsfs and regular doom install

https://blog.benjojo.co.uk/post/dns-filesystem-true-cloud-st...

[−] tracker1 49d ago
Well, there are DNS tunneling projects, so I would suspect you could displace the network support in DOOM with a DNS based protocol.
[−] b112 50d ago
You make me wonder if it is possible. All you need to do is to programmatically change bits, and you have compute. Some cache monkeying or somethong.

Of course, I imagine it would be incredibly slow.

[−] umvi 50d ago

> Cloudflare will serve them globally, for free, cached at the edge, to anyone who asks. They are not a file storage system. They were not designed to be a file storage system. Nobody at the IETF was thinking about them being used as a file storage system when they wrote RFC 1035. And yet here we are.

Yeah these types of hacker stories kind of bug me. They are sort of in the same vein as "you can eat for free by going to McDonald's and eating a pint of ketchup without ordering anything" or "How I drank and showered for a year using public water fountains" . Or put another way "just because you can doesn't mean you should". Trustless societies kind of suck and forcing society to lower trust by abusing trust kind of makes things incrementally suckier ("trust" here being "it's on the honor system to not abuse DNS to serve static content").

[−] LetsGetTechnicl 50d ago
This novel form of data storage reminds of me of this classic YouTube video, Harder Drive: https://www.youtube.com/watch?v=JcJSW7Rprio
[−] ttul 50d ago
My old late friend Dan Kaminsky famously wrote the Perl module "Ozyman DNS", which allowed you to tunnel ssh session over the DNS, thus evading certain firewalls such as those controlling access to public WiFi. Modern public WiFi setups filter the DNS too, rendering this technique moot, but I remember using "Ozyman DNS" to get WiFi access on the Caltrain and that was highly satisfying.

https://boingboing.net/2004/06/21/tunneling-ssh-over-d.html

[−] nasretdinov 50d ago
Waiting for Doom over https://github.com/yarrick/pingfs next
[−] kgeist 50d ago
I once had this silly idea to create distributed storage of arbitrary data by exploiting a range of completely unrelated sites. Say, when you want to upload your file to the System, it may store one encrypted chunk as an image on a free image hosting site, another chunk as an encoded blog post on a random forum about farming (or in the user profile?), another chunk as a youtube video, etc. Imagine having something like hundreds or thousands of such "backends". Every chunk would be stored in 3 places for high durability of course. Free storage, hidden in plain sight :) Although, I didn't think through how to store the index reliably, and, because a moderator on a random farmers' site may delete our record(s), there needs to be a system which continously validates the integrity and reuploads the chunks.

Maybe such a silly project already exists?

[−] kaitari 50d ago
I never stop being impressed by these " running Doom" posts. AFAIC, whenever we get to Mars, we won't truly have arrived until someone is playing Doom on Mars, and without wasting valuable resources by doing so. Running Doom, the canonical measurement of truly mastering a thing's capabilities.
[−] lxgr 50d ago
A database storing data? Now I’ve seen everything!
[−] tombert 50d ago
Gotta admit that it didn't occur to me that "can it run DOOM?" would stretch all the way to DNS.

At this point I am wondering if people will somehow port DOOM over to the MONIAC.

[−] hun3 50d ago
Finally, a DOOM download that bypasses captive portals
[−] Sajarin 50d ago
[−] hhh 50d ago
very cool, i did something similar but turning the doom frame running on a server into ascii (with colour) and then a small shim to give inputs via subdomains

https://www.youtube.com/watch?v=GoPWuJR6Npc

without the colour i did it in a worse way for bad apple

https://www.youtube.com/watch?v=AJ2Q12vYojY

[−] thestackfox 50d ago
Respect. But also ... WHY????

Now let's do

(1) A DNS file drop: Split small files into TXT records and rebuild them client-side. Useless for big files, perfect for config blobs, tiny payloads, and cursed demos. Also someone can write an S3-compatible client.

(2) Redis DNS:

- GET foo.cache.example.com -> TXT record returns value chunks

- TTL is the eviction policy

- Cache invalidation becomes even more of a hate crime.

[−] aboardRat4 50d ago

>They are not a file storage system. They were not designed to be a file storage system. Nobody at the IETF was thinking about them being used as a file storage system when they wrote RFC 1035. And yet here we are.

That's plain wrong. DNS was specifically designed to store arbitrary data, cf. the Hesiod name class.

[−] ge96 50d ago
Tangent, harder drives by suckerpinch
[−] anthk 50d ago
Another fake Doom run, like the predictor one. This doesn't actually run Doom. Sorry. Meanwhile, other esoteric platforms actually runthe software.

There's the Infocom ZMachine with Zork I-III, Tristam Island, Calypso (Z machine v3 games) and many more which can be run starting from a PostScript file to a pen, a simple FPGA machine, an Amiga, the original Game Boy and who knows what.

If you can port a libre interpreter, you can run it. Old PDA's, Smartphones, JS browsers, Windows 95 machines with Winfrotz, DOS, Raspberry Pies with GNU/Linux, Riscos... There are emulators even written in Perl, Python, Lua, tons of them. It's text based output and the Z machine format it's documented.

I think some Activision games had the the Zork game embedded on their engine as an Easter Egg. As it's an 'easy' task for any programmer embedding it under a fake ingame computer woudn't have been a daunting task.

Maybe I can adapt the PostScript one to Eforth under the Subleq VM, PS' syntax maps slightly ok to EForth...

With Asterisks and some old modules you can even play it over a VOIP client and listen to the output with Flite/Festival/Espeak-nG or any compatible TTS software, such as PicoTTS. The voice input it's done with CMU Sphinx.

Something Doom can't do at all.

[−] yanhangyhy 50d ago
Perhaps one day in the future, DOOM will become one of the symbols of human civilization—both in contrast to robots and in contrast to extraterrestrials.
[−] nullbyte808 50d ago
Malware could still use DNS records for storage and access to bootstrapped payloads correct?
[−] didip 50d ago
What is the serialization format? Base64?
[−] ozgurozkan999 50d ago
This feels so unnecessary but very cool.
[−] nimbius 50d ago
blech...too much windows. bring me the Linux version and i might care ;)
[−] vicapow 50d ago
that SVG wow how?!
[−] vivzkestrel 50d ago
any of you did doom inside meta glasses?
[−] jjlane 50d ago
thanks for doing god’s work my friend.
[−] paulddraper 50d ago
"Author discovers that DNS stores data, and that data could be DLLs."

Okay?

[−] cobbzilla 50d ago
what is the frame rate?
[−] jjlane 50d ago
thank you for doing god’s work my friend.
[−] spirodonfl 50d ago
I covered another use case for this last year:

https://youtu.be/mjSdHHJySDk

[−] sta1n 50d ago
[dead]
[−] panelpowder 50d ago
[dead]
[−] midnightrun_ai 50d ago
[flagged]
[−] chodecaller 50d ago
[flagged]
[−] kuberwastaken 50d ago
This is so peak
[−] cat-turner 50d ago
Super cool. Never thought of this. Would this be useful for seeding LLMs?
[−] quotemstr 50d ago
We've known for years that we tunnel IP over DNS [1]. We know, of course, that we can load or play DOOM over IP. Suddenly, combining the two things we already know how to do is supposed to garner attention and plaudits?

[1] https://code.kryo.se/iodine/

[−] ethin 50d ago
I read this title, did a double-take, then had to go look at the git hub because it still didn't click for me. Because this sounds absolutely amazing, and absurd, and weird, all at the same time. Like..... Wow? Talk about turning protocols into pretzels...