Rangoon
10 points Easy

This is the third in a series of introductory Reversing Challenges; Reyjkavik, Riyadh and Rangoon. These are designed for people new to Reversing. A little gdb, C and Assembler knowledge should be enough to solve this challenge. Good Luck!

Note that once you solve the challenge, you can use the flag to decrypt the source file used to create the challenge if you are interested in seeing the original C program.

The LiveOverflow channel on YouTube has some great tutorials on reversing, this video has almost everything you need to solve this challenge: https://www.youtube.com/watch?v=VroEiMOJPm8

Rangoon.zip
Flag
Rating 4.56
5
4
3
2
1

Discussion

It took me more than I expected :/ I believe this approach is an original one, for sure it is not perfect — “search and brute” (example script: https://github.com/JanKrasodomski/simple-python-brute-force/blob/283b54f71dcd3dcfa2a52142a75e28f1e7d83f57/simple_brute.py).

0

wow.. nice puzzle

0

how to decrypt the source code files with the flag?

0

Instructions are given in one of the files, it is done with openssl

0

the instructions are in the 'readme' file

0

Really Enjoyed This Challenge :) But Doesn't Seems to require Dynamic Analysis, as specified in some comments

I have used Cutter to solve it though

0

I really enjoyed solving this one. Thanks!

1

This challenge is definitely worth more than just 10 points :/

1

I made it 10 points because it is a very simple reversing challenge. I understand that is more complex than RubberDuck which is also only worth 10 points.

0
Protected
1

Sneaky... To anyone who is confused: maybe you should look at how buffer, to which flag is compared, changes. Is it always the same or does it depend on something? Final hint: what is ASCII character for 0x5F?

Anyway, great challenge, definitely worth more than just 10 points. Thanks for your work, will move on to your next CTF!

1

Should we compare address of 0x5F with address of string buffers?OR should we compare 0x5F with address of string buffers? Any help would be greatly appreciated

0

If you pay attention, the presence of 0x5f is checked in the flag mutiple times. From which we can infer that at those positions 0x5f should be present in the flag. Now rewrite the input flag and proceed to do dynamic analysis.

0