Rotterdam Reversing Challenge
40 points Medium

This is a beginner / intermediate reversing challenge that is written in Assembly language. It is aimed at people that know a little assembly and are interested in learning more about Reverse Engineering.

The flag is encoded using xor, add, sub, mul and div operations. The flag kernel is of the form a_b_c_d_e where each letter corresponds to a short word. Each word is based on a single math operation.

There is a function GetTData used to retrieve constants used to hide the flag via math operations. There is no need to step into GetTData... when the function returns the constant is in the rax register.

I have included labels _Step1, _Step2 etc in the assembly that loosely correspond to each of the a/b/c/d/e words in the flag kernel. This allows for easy setting of breakpoints. There are no debugger detection checks in this challenge.

The function GetTData will be tedious to step through or analyze using IDA / Ghidra... I expect most people will use gdb / pwndbg to solve this challenge.

After you solve the challenge you can decrypt the sources.zip.enc file to see the .asm and .py files used to create the challenge. Details are in the readme file.

Good Luck!

Rotterdam_1.zip
Flag
Rating 4.84
5
4
3
2
1

Discussion