Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Doom (1993) Encryption (twitter.com/foone)
114 points by turrini on Nov 2, 2019 | hide | past | favorite | 33 comments


Neat stuff, but this really affirms, to me, that Twitter is a really terrible platform for any content longer than a single tweet.


A Twitter thread to explain why @foone uses Twitter threads: https://twitter.com/foone/status/1066547670477488128?s=21


Is there a reason someone can't just ramble in a blog post?


ADHD. If I have a long-form blog post to write end, I get caught up in going back and rephrasing and re-editing and such, and it never gets finished.

Twitter's paragraph-size chunks with minimal editing (if I really have to, I can delete the last post and re-create it) means that I can't get stuck in the process of editing and revising, so I have to keep moving forward.

So it's really the only way I can write. My wife's gone through and rewritten some twitter threads into a blogpost for me, but she hasn't gotten to this one yet.

BTW, You can also use a threadreader/unroller to make a pseudo-blog-post out of it.


You produce some of the most interesting threads I've read on Twitter. Thanks for sharing as much as you do.

Out of curiosity, why not mastodon? Do you see a path from Twitter to a federated or decentralized service?


because... he/she doesn't WANT to?


Axiom Verge (2015) uses the same trick to avoid the `strings` utility, but with parametrized cheat codes. (Back then I took it apart in a decompiler and looked up all the cheats, see https://trollbu.de/axiomverge/)


Foone's is easily one of the most interesting and weird accounts to follow on Twitter.

Check out this thread starting with a response on the toxicity of Rhodium and prepare for one hell of a ride!

https://twitter.com/Foone/status/1190340638899724288


Similar efforts to hide string literals were used 5 years earlier in one of the first Internet worms: Morris worm.

http://spaf.cerias.purdue.edu/tech-reps/823.pdf sect. 5.1.7


Huh. I'd forgotten that only five years elapsed between the Morris worm and DOOM. That's amazing progress in a very short time.


Is this not considered obfuscation? I thought encyption implies there is a key of some kind to decode the message. This seems like obfuscating binary and translating it at runtime, à la security-through-obscurity.


You might be more interested in how Quake's unlock keys worked - http://rmolina.co/p/qcrack.html


Based on the algorithm in the tweet, it looks like it's reversible. This would imply that it's indeed encryption and not a hash function or anything.


There is nothing preventing someone from decoding this message. Sure it's a bit of a hassle to reverse-engineer the isomorphic function but there is nothing secure about this. The cheat codes are not encrypted, they are obfuscated.

Wikipedia defines encryption as "the process of encoding a message or information in such a way that only authorized parties can access it and those who are not authorized cannot."


That's a poor definition. If I read someone's GPG password off a Post-It on their desk, I can decrypt any information encrypted with it, but I'm not authorized to do so.

A better definition would distinguish between those in possession of both the algorithm and all its inputs, and those who aren't in possession, and rather than saying they "cannot" access the encoded information, it would say that access is impractical or at least cumbersome.

By that better definition, it's still encryption, because it made it cumbersome for someone to access the codes without understanding the encryption method.


> because it made it cumbersome for someone to access the codes without understanding the encryption method.

I disagree. This is security through obscurity. You are simply transforming data, byte-by-byte without any key. This is encoding data using an isomorphic function. By you definition, GZIP is encryption.


I've only read the beginning of that Tweetstorm, but it looks like a transposition cipher (which is considered a form of encryption). Even ROT13 is encryption, despite being trivial to break; a diary lock which can be picked with a paperclip is still a lock, it's just a bad one.

https://en.wikipedia.org/wiki/Transposition_cipher


If the means for decryption are stored with the encrypted text, it's encryption and obfuscation.


A Caesar cipher is encryption, there this too is encryption. Is the encryption very weak? Yes.


Weak encryption is still encryption


So, encoding == encryption? and compression == encryption?


The key is the obfuscation algorithm.

In cryptography, the key isn't just a string of bytes, it's also the algorithm and cipher.


Is there any difference between obfuscation and encryption with a hard-coded key and some compiler optimizations such as constant folding?

If so, I don’t see it. Obfuscation typically uses a fairly weak form of encryption, but that isn’t essential.


If you enjoy this kind of content do yourself a favor and follow this guy. It’s an amazing account.


I think this small piece of nostalgia (and memories of struggling with extenders) is fairly timeless, and many game devs still say something similar today:

> We are going to use the 1.95 4GWPRO dos extender for the new version and patch, but if you have difficulty with it, we will provide other executables that you can try with the 1. 8 DOS4GW extender and 1.94 4GWPRO extender.

> Yes, we think this business with flakey extender versions is a pain, too. The price we pay for want to make this game on a platform with a market. PC's. DOS. Sigh.

- Dave Taylor


In my experience DOS/4GW was pretty stable. The only times it used to spam my mode13h screen full of registers was when I did something wrong myself.


Heh DOS4GW was incredibly stable compared to the one that 3DStudio 4 used, what was the name... Pharlap?


Phar Lap was named after a horse!

DOS4GW was probably the most common, especially with PC games.

PMODE was pretty popular with the hobbyist market. CWSDPMI was also pretty popular once DJGGP started being used with it instead of Go32 (which I think wasn't even a full dpmi provider)


Yeah I was using PMode for our demos since it came out in 94, but for my 1995 game I stuck with DOS4GW, and after Win95 and the GameSDK came out it was time to move to Win32.


If the cheat codes appear in the code in a particular order, wouldn’t people tend to document them in order of appearance? I don’t see why two people wouldn’t generate the same list from the same code base.


More and more gems coming out of the source code from the mind of Carmack.


Actually, this was implemented by Dave Taylor: https://twitter.com/ID_AA_Carmack/status/1189567625631883265...


Ahh cool! Thanks for clarifying




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: