Rating:

This one was a royal pain. Someone took a PNG into a hex editor and changed various bytes here and there, thankfully in a somewhat targeted way.

First, the PNG header was corrupted. The first byte of any PNG should be 0x89, but this one was 0x90. From here, pngcheck is very useful, telling us that the PNG (with dimensions 13*37, har har) didn't have the correct CRC value. We assume (correctly, it turns out) that 13*37 is not large enough to contain a legible flag, and decide that the dimensions must be recovered. We set to work writing a script which brute forces the width and height values and eventually found correct values. After doing so, pngcheck complained about the iTXt chunk, which was quickly discarded as it is completely unnecessary. pngcheck now complains that the CRC on the first IDAT chunk is incorrect, so we check it out and see that the length has been changed to 1. We correct the length and pngcheck complains that the filter values on the second IDAT chunk are incorrect. We ragequit the PNG fixing and instead open with Preview.app which helpfully displays all it can. We have the top half of the flag text, and recreating the text in MS Paint with comic sans, we recover the flag from the half-uncorrupted image.