Rating:

tl;dr
1. Analyze `supervisor` -> Learn that it forks a child process which executes `crackme.enc` and monitors it with `ptrace()`.
2. Analyze the parent process -> Learn that it catches debug break and modifies the code of its child on the fly.
3. Use `LD_PRELOAD` hooking technique to see what code is being modified in the child -> Patch it accordingly.
4. Analyze the child process -> Learn that it checks `secret_key` by simple math and comparison.
5. Write code to generate correct key -> get flag.

Original writeup (https://lkmidas.github.io/posts/20210201-justctf2020-writeups/).