Reversing
5 - Baby Rev, Loginator.out , Appreciation of Art , Praise our RNG Gods, Reverse Mishaps
Baby Rev

There is a file chall.py provided to us, looking into it, we see this
So there is a base64 string which is in reverse and after it has been "unreversed", it is base64 decoded and decompressed using zlib. There is also the site given from where it was obfuscated. I wrote a small code to do this once and got the same output (a reverse b64 encoded string). So I automated it with python until I get something else.

Loginator.out
For this one, we had given a file loginator.out and a series of hex strings. On running the binary, we see that it encodes the string in hex and prints it back.

After running the binary, we can see that it obfuscates the string back to hex and prints it, so that weird hex provided to us might be the target hex for the flag ig

02 92 a8 06 77 a8 32 3f 15 68 c9 77 de 86 99 7d 08 60 8e 64 77 be ba 74 26 96 e7 4e
with some guess work, I could make out a few initial characters and quickly wrote a python script to brute force all the others. Although I could "reverse" the binary and find out how it worked, this was way easier.
I automate the guess work in python until I find the matching hex and continue until I get to the end of the flag

Appreciation of Art

We are given a binary a.art and this is what we see on running it

Once again, This was something that I didn't exactly "reversed" and took a shortcut lol, but first comes some initial analysis I did.

So It's a stripped binary, x64 and my guess for the reason behind those single char write calls is that they really didn't wanted us to look into any strings inside the binary. Running strings only gives us this

I did try r2 to reverse it but then quickly decided to take a simpler approach. I run the program again and then crash it using gcore to get the core dump and grep for strings in it. First we need to enable the core dump.

Although I still couldn't see what was the name of the character , I did get the flag.

Well, This was something I genuinely want to know the intended solution for.
Praise our RNG Gods

We are given a chall.txt file and a netcat server to connect to. I had never seen a python bytecode disassembled so I skipped it but then later visited this challenge again and managed to reverse it. Although I was late and so couldn't complete the challenge.

On connecting to the server, we are asked to input a number and if wrong, it will let us know how "away" we were from the correct password, there doesn't seem to be any limit on the number of times we can attempt it. It uses getrandbits and does some XOR to get the password. On googling about how we can guess psuedo-random numbers in python, I found this cool page talking about it.
Instead of "reversing" that XOR functions, we can just apply those to our random number generated and give it to the predictor.
Reversing Mishaps

Only 6 solves, Unfortunately I didn't look into this one, so I'll update this and link to others who have written about it.
Last updated
Was this helpful?