The ELF executable (rev3_32) we receive for this challenge takes a string as input, performs some operations on it and finally compares it to the following hardcoded string
egzloxi|ixw]dkSe]dzSzccShejSi^3q. If the two strings match, the program prints a success message.
Let’s have a look at the
encode function, which can be seen in the screenshot below:
What this function basically does is it takes each input character
XOR 9 and subtracts
3 from the result. In order to obtain the decoded string, we just use a small Python script which reverts the encoding.
encoded = "egzloxi|ixw]dkSe]dzSzccShejSi^3q" decoded = "" for c in encoded: dc = ord(c) + 3 dc = dc ^ 9 decoded += str(chr(dc)) print(decoded)
The decoded string is also our flag.