QRception
![]()  | 
| We need to scan deeper.. | 
The best thing about the puzzle in
level 3 is that it's a puzzle within a puzzle!
So it's almost like you've got a hidden bonus level (yay!)
When you enter level 3 you'll be greeted with a page that contains a picture in the middle of it that doesn't really look like ... anything.
Reason why this picture looks the way it is is because this is no
ordinary picture, it's a QR code!
Simply put, QR code is a little nifty representation of arbitrary data through a picture which can then be printed on anything from business cards to toilet stall doors.

Let's assume that we have a piece of software that converts anything to feed it to a QR code.
The first thing this software would do is first convert all the data you gave it to binary number (0's and 1's) after which it'll start generating the picture, the way the picture is constructed is by placing a black square for the 1's from the previous conversion process and white squares for 0's.
But that doesn't mean that you now have a fully operational QR code yet! What the software will do next is create multiple copies of the picture it created above and place them all in one relatively bigger picture, it does that to account for any damage that may happen to any part of the picture or rather the medium the picture's been printed on (ie: paper, soda can, cardboard etc..)
So for example if it was printed on a piece of paper and somebody spilled some water on the right part of it it'd still be scan-able since there're multiple little copies on the other side that are still intact.
There are also these squares within squares at the corners to give the scanner a sense of perspective as for the size of the qr code it's currently scanning and to compassionate for any skewing in the angle you're scanning from (ideally you should be facing the image while scanning it but sometimes you don't get this luxury)
So now that we know what kind of picture that was in level 3's page let's scan it!
for this writeup i'll be using an online service that scans QR code images for you without a camera, it simply directly decodes it and gives you the output in plain text.
So let's fire up our browsers, go to zxing.org's QR decoder and feed it the url or our mystery picture (Right click, Copy image url just in case)
If all went well you should have an input exactly like that:
it gave out some data but what we care about the most is the "raw text" field because there lies our precious output .... which still looks like nothing ....
And now we start the second part of our puzzle!
From the undeniable rules of life is that if you ever saw dots and dashes next to each other, know for a fact that you're reading Morse code.
Without delving into boring history, Morse code in essence is just another way of representing data through dots and dashes, or on and off signals, or beeps, or light flashes or anything that can represent that binary system.
For example here's "Hello world" in Morse code:
Cool isn't it?
as you saw in the video, every letter in English corresponds to a set of dashes and dots in Morse code, All you have to do is just represent these dashes and dots through sound, light or any other medium and you can convey secret messages in an obsolete language in no time!
Here's a picture in case you're interested in knowing how to convert English to Morse code:
So now that we know what that was about as well let's feed that to it's own translator as well, For this we'll head over to this Morse code decoder and feed it our message.
Again if all went well you it should return something like this.
And finally that translated to our flag text which says (after adding spaces): "INFOSEC FLAG IS MORSING".
Definitely it's been one of the most fun levels to play as it gives you a break from the technical stuff and doesn't take a huge knowledge base to solve.
if ("you made it this far"):
 print("Thank you for reading, See you again in another write-up.")
























