Rating: 4.0

# SuperEncryptor

With some clever inputs, the challenge can easily be solved without analyzing the binary. When we feed `\x00`s, we get the following output:

```
echo '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' | ./q3
_ _ __ __ _ _ __ _____ __
| \ | | | \/ (_) | \ \ / / _ \/_ |
| \| | __ _ _ __ ___ | \ / |_| |_ ___ ___ \ \ / / | | || |
| . ` |/ _` | '_ \ / _ \| |\/| | | __/ _ \/ __| \ \/ /| | | || |
| |\ | (_| | | | | (_) | | | | | || __/\__ \ \ / | |_| || |
|_| \_|\__,_|_| |_|\___/|_| |_|_|\__\___||___/ \/ \___(_)_|

String to encrypt (Max 5000) : Encrypted : abcdef4123310abcdef4123310ab
```

First thought that came to my mind was that it was an XOR operation with the key `abcdef4123310`. When I XORed this key with the content of flag.enc, I got:

`rkd4y_{MgFS3lt4uArs_Ju3_5}mpdec0`

which looks like the shuffled version of the flag. Swapped two sides inside each 4-byte block, and got the flag:

`d4rk{My_S3gF4ults_Ar3_Jump5}c0de`