GiTS 2015 Teaser Writeup - Lost To Time


Well this is my first blog post about a CTF, feel free to let me know what you think.

Challenge:

So I lost my computer. And also my compiler and most of the documentation. Can you help me, please? file

The challenge presented us a XZ Compressed data file. Decompress it with

xz -dc < losttotime > lost

The instructions in the file belong to COMPASS Assembly Language. The first thing we did was to find some documentation which gives us a reference of the instruction set to understand the instructions. We also need to understand the architecture of CDC6000 system. Finding documentation proved tricky as COMPASS is very old and the only documentation available were pictures of actual documentations (so no search in pdfs). Links to documentations we used are at the bottom.

We also observed that each VFD (lines 54 - 77) are 60 bits long each. ‘B’ means that the given numeric constant is in octal representation. We went ahead and converted each of them into their 60-bit long binary representations as we would need this in our code. data file.

Using the documentation we decoded the given assembly as:

This is fairly easy to convert to a program. Ruby is my choice of language. Here is the program that will give us the flag:

Running the same gave us the flag:

FLAGiCYBERCONTROLCYBERDATACYBERCORPORATIONj

This was a great challenge and we enjoyed sifting through those ancient documentations and getting a glimpse of how computing has changed over the years. Thanks to the organizers for a great challenge!

Here are links to some documentations we used: