Listen

Medium challenge

files included:

file-archive
8KB

Program behaviour:

the program throws up some random stuff and takes an input (possibly the flag)

Static analysis:

ghidra decompiler output

the program:

  1. generates the 'noise'

  2. takes in our input

  3. compares our input character-by-character to the flag

Solving approach:

now here comes the tedious part, we now have to cycle through a debugger (gdb) and set breakpoints at the comparison of characters, and check the register its comparing (RAX) for the hex values that is correct

RAX is the hex value representation of the letter 'f' (0x66)

for every character that we get from RAX, we suffix that into our existing input, slowly but surely correcting it to the flag that we need

after repeating this a few more times, we get the final hex values

666C61677B315f7233614c4c795f6c3076455f52346e44306d5f5448694e6773217d

which then corresponds to:

flag{1_r3aLLy_l0vE_R4nD0m_THiNgs!}

gottem

flag: flag{1_r3aLLy_l0vE_R4nD0m_THiNgs!}

Last updated