███ █████ ░░░ ░░███ ████████ ████ █████ ██████ ░███████ ██████ █████ ████ ░░███░░███ ░░███ ███░░ ███░░███ ░███░░███ ░░░░░███ ░░███ ░███ ░███ ░███ ░███ ░░█████ ░███ ░░░ ░███ ░███ ███████ ░███ ░███ ░███ ░███ ░███ ░░░░███░███ ███ ░███ ░███ ███░░███ ░███ ░███ ████ █████ █████ ██████ ░░██████ ████ █████░░████████ ░░███████ ░░░░ ░░░░░ ░░░░░ ░░░░░░ ░░░░░░ ░░░░ ░░░░░ ░░░░░░░░ ░░░░░███ ███ ░███ ░░██████ ░░░░░░
All of the reversing challenges in this CTF were packed with upx. Therefore, I’ll be talking about only the decrypted versions of these challenges. All of them were decrypted with the simple command upx -d infile -o outfile. All of them are also Rust challenges that were more or less solved by traversing around it to invoke a certain function.
upx
upx -d infile -o outfile
Question: The String is all you have
The String is all you have
Points: 150
Get into the StringCrack::crack1 function and change ZF two times to get into the right method that prints out the flag
StringCrack::crack1
noob{n0boot0br00t}
Question: Crack | Compare | Bypass
Crack | Compare | Bypass
Points: 200
lenrev::crack is the function where the flag is. Traverse to that function and bypass an if condition, and you’ll get the flag.
lenrev::crack
if
noob{bufferr34d}
Question: Crack and redirect your way to the top of the hill
Crack and redirect your way to the top of the hill
The flag is in replacefunc::function1 and can be printed out by changing one ZF.
replacefunc::function1
noob{easybyp4ss}