There were three posters around the room that the competition was being held in. Each poster had a QR code on it with some parts missing (We were later sent the original files, which will be used in the writeup as they are better quality).
QR Code 1:
QR Code 2:
QR Code 3:
Luckily, upon scanning the first QR code, the scanner I was using was able to decode it without us having to fix the code. It decodes, and gives us the flag: flag{qr-codes-are-cool\!}
.
Looking at a diagram of QR codes, we can see that the vast majority of parts that codes 2 and 3 are missing seems to be to do with the orientation.
The missing portion on the lower right hand side of each code is only actually half a square of each of the surrounding squares. We can easily fill in these, along with the orientation marks.
I used an online pixel editor to do this manually.
After I had done this, this then leaves us with Code 2 as:
and Code 3 as:
By trying a variety of different scanners, we eventually get these to scan, giving us the flags: flag{sometimes-things-are-more-predictable-than-you-think}
for code 2 and flag{black-on-white-or-white-on-black?}
for 3.