Sunday, October 16, 2011

Getting the Uplink Game Bible

Spoiler alert - these posts tell how to decrypt the books of the Uplink Game Bible.

Be advised that all the books of the Uplink Game Bible are available in unencrypted form in the Uplink Developer CD which can be downloaded via BitTorrent. I use the Vuze BitTorrent client on a Mac and the website btjunkie.org

A word of warning - the challenge of getting the Uplink Game Bible was mostly intended for other Software Developers or hard-core computer enthusiasts.

It is not necessary to hack the Game Bible in order to play the game. The Game Bible only contains design notes and sketches the Introversion developers made while developing Uplink, it does not contain any strategy hints, tactics, or secrets necessary to complete the game(AFAIK).

All work was done on a Mac.

One of the coolest things about Uplink is the fact that in addition to the simulated hacking that takes place in the game, the game designers provide an opportunity to hack their Uplink game design notes, a.k.a. the "Game Bible". The Game Bible is broken into four books, each is hidden or encrypted in a different way.

All four of the Uplink Game Bible books have been available for some time in decrypted form in the Uplink Developer CD, which can be downloaded for free via BitTorrent (I used the Vuze BitTorrent client running on a Mac and downloaded an Uplink Developer CD torrent found via http://www.btjunkie.org).

But if you're like me (a Software Engineer with too much free time on his hands), having the decrypted Uplink Game Bible books is not enough. You'll also want to know the algorithms used to encrypt the files in the first place.

Despite the fact that the game Uplink was released in 2001, the source code for the game has been published, and the four decrypted Game Bible books have been published, AFAIK no one has published the methods used to encrypt the four Game Bible books in the first place.

This piqued my curiosity, so I set out to discover how the books were originally encrypted, starting from the original encrypted copies, and in some cases taking advantage of the available decrypted copies of the books (a "known plaintext attack" against the original encryption ciphers).

In the posts that follow, I detail how I reverse-engineered the ciphers that were used to encrypt each of the four books of the Uplink Game Bible. Beware - spoilers follow. Another motivation for me to post this information was all the douche-bags on the Introversion Uplink forums who thought people should have to wade through every post in the forums to get this information. I regard that as a waste of people's time, hence these posts.

As I found out, finding the ciphers that were used to encrypt the Uplink Game Bible books is harder for some of the books than others.

Getting Book 1 of the Game Bible requires ASCII-decoding the password for a password-protected zip file.

Decrypting Books 2 and 3 requires familiarity with hexadecimal numbers, ASCII encoding, file formats, the command prompt, C programming, and binary operations (XOR). Also helpful are familiarity with hex editors, regular expressions, Microsoft Excel, and Star Trek.

Getting Book 4 only required finding the book on a BitTorrent tracking site. This original file can no longer be found, but of course Book 4 is available on the Uplink Developer CD via BitTorrent.

In my next post, I'll detail how I determined how Book 1 of the Uplink Game Bible was originally encrypted.