Ghost
spookyghostboy
I tried to send you a bunch of messages :)
MD5 (ghost) = 3f61d4a3d19c3f3ac1f8223f7c7672af
Author: Tensor
Ghost challenge was an interesting one! The author of the challenge loves to mock us in a fun way. We were given a file with no extension, but the description of the challenge gives us a hint that it's probably a text file.
We then drag our file to the browser and we found a bunch of messages!

The first thing we noticed was the Base64 encoded string, we then use CyberChef to decode it.

As you can see, the output clearly gives us a hint that the challenge is not as easy as we think! So, we figured that the other visible text in the file is probably not the flag.
Some of you may have noticed the Pika Pika text, and it is a language called the Pikalang! We then decoded it using an online decoder.

At this point, we are sure that the author is messing with us! 😢
But, we have not given up yet! From the file, we noticed a huge chunk of spaces AFTER the "Pika Pika" text, and we highlighted it.

We figured that this might be of interest, because as we were highlighting it, we realized there were tabs and spaces 😯
After a bit of Googling, we found out that this is a Whitespace language! We learnt something new today! 🎉 As we further find out more about the language, we found an article by John Hammond.
To decode it, we wrote a script that converts;
Whitespace to Binary
Binary to Hex
Hex to ASCII characters
s = open("ghost.txt").read()
txt = ''
for c in s:
if c == ' ' or c == '\t':
txt += str(0 if c == ' ' else 1)
binary_to_hex = ("%x" % eval("0b"+txt))
bytes_object = bytes.fromhex(binary_to_hex)
ascii_string = bytes_object.decode("ASCII")
print(ascii_string)
Flag: grey{gh0s7_byt3$_n0t_1nvisIbl3}
BOO! Are you afraid of ghosts?

Last updated