Go back to main menu

L3akCTF 2024 - [REV] Hidden

Difficulty : ⭐

LIBC function call tracing

The hidden binary is dynamically linked to LIBC :

file hidden command

I can use ltrace to trace each LIBC function call.

ltrace

Hum… the program calls strlen() multiple time with “L3AK{b4by_sT3Ps” buffer. It seems that it is the start of the flag !

Decompilation with Ghidra

Using Ghidra, I can tell that the program has a main() function as entry point at FUN_001013e5 :

entry

and asks for a password in argv[1]

main

because

undefined8 FUN_001013e5(undefined8 param_1,long param_2) /* int main(int argc, char*argv[]) */
...
strcmp(*(char **) (param_2 + 8),__s2) /* strcmp(argv[1],__s2) */

Flag

It should be useful if I use L3AK{b4by_sT3Ps as a password in argv[1] with ltrace :

strcmp

Now the program compares the password using strcmp() function with… the flag !

flag