TL;DR:
- 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.
- Analyze ScreenSaver.scr -> A Windows screen saver file is actually a .NET executable, use a .NET decompiler of your choice to analyze.
- 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.
- Analyze shuffling logic -> Learn that it uses simple number generator to select pairs of pieces to swap.
- Reimplement the swapping logic -> swap backwards to recover the actual screenshot.
Full: https://lkmidas.github.io/posts/20210517-omhctf2021-writeups/#flag-saver