It was a pretty simple chall. Apparently no input from the user was taken. The binary was given which was running on the server. It calculates a key based on the time you connect to the binary and then decrypts a payload which is then executed. When the key is correct, the flag is read and printed to stdout. We wait for that "Window of Opportunity".Here's how I did it:
The relation between time and key:
```pythonkey = (((time & 0xFFC) << 16) - 0x14C437BE) ^ ((time & 0xF0) << 8) | ((time & 0xFFC) << 8) |  ((time >> 8) << 24) |  time & 0xFC```
This shows only last 2 bytes matter. 
We have at most $2^{16}$ combinations, but some operations make it lesser. 
+ Only 787 possible keys.+ Run the program with all keys under gdb to figure out the correct based on if the program crashes. Only one correct key => 0xff4fdc56L+ Connect to the server at the time when the correct key is derived
All scripts [here](https://gist.github.com/sudhackar/b90987864dd88dfe528542bea9d901be)