Faraz Kaleem Malik

Personal website for a Computer Science student at UofT

BroncoCTF 2025 QR Coded Writeup | Faraz Kaleem Malik

BroncoCTF 2025 QR Coded Writeup

February 17, 2025

This writeup was requested multiple times on Discord so here it is. I solved this while playing with “BLIGHT BABIES” (now BYTE BABIES) at BroncoCTF 2025. This is a forensics problem which is definitely not my forte.

Problem

This one should be really easy. All you have to do is scan a QR code!

Attached is an image called “easy_scan.png”, which is exactly as shown.

Steps

Scanning the QR code like the problem statement suggests gives you bracco{thi5_1sn7_r34l}. Not very helpful. I decided to plug the image into AperiSolve to give some more info.

I noticed that all layers except the first were identical. This makes sense since the image appeared to be white and black, which are #ffffff and #000000 respectively. Thus, there was only variation in the least significant bits, which we could see best in the superimposed image in the top left corner. Of course, these variations are impossible to notice on the final image.

One thing to notice is that the colourful superposition actually forms a valid, but different QR code. For me, the tell was the clear existence of the 3 large squares and the smaller square near the bottom right (yeah I watched that Veritasium video).

From there, I just had to convert the colorful image into black and white. This can be done with a simple ImageMagick command.

magick qr.png -alpha off -threshold 99% o.png

Scanning the code (or in my case, uploading it to some random QR code decoder site) gives us the flag, bronco{th1s_0n3_i5}.