Rating: 4.7

TL;DR:
1. Take a look at the screenshot.png -> It seems like it’s a screenshot that is splitted up into pieces of the same size and shuffled around.
2. Analyze ScreenSaver.scr -> A Windows screen saver file is actually a .NET executable, use a .NET decompiler of your choice to analyze.
3. Analyze the 2 main forms: SettingForm and ScreenSaverForm -> Learn that SettingForm is to set how many pieces, and ScreenSaverForm is where the actual shuffling logic is implemented.
4. Analyze shuffling logic -> Learn that it uses simple number generator to select pairs of pieces to swap.
5. Reimplement the swapping logic -> swap backwards to recover the actual screenshot.

Full: https://lkmidas.github.io/posts/20210517-omhctf2021-writeups/#flag-saver

Original writeup (https://lkmidas.github.io/posts/20210517-omhctf2021-writeups/#flag-saver).