📜 ⬆️ ⬇️

New Year's Quest: Analysis

My quest was published three days ago, so you can proceed to the analysis. According to my estimates, the majority of those who wish have already broken their heads above the tasks, but if you want to try again, do not look under the cat so as not to spoil the pleasure :-)

One of the most frequent reviews of my jigsaw puzzles and riddles - oh, cool, but very difficult, we would have something simpler ... Therefore, I tried to make the first few levels simple and / or classic in order not to cool the players' interest from the very beginning. Then there were several levels based on my old publications on Habré, conceived as a bonus to those who carefully study my works :-) And finally, the last two levels were the most difficult - I had never addressed their topics before. My congratulations to those who completed the quest myself or with clues - unfortunately, I have not laid any way to estimate the number of such people. Total downloads of the archive with the quest were more than 20,000.

Level 0


Nowadays it is difficult to consider something encrypted in a QR code safely hidden, therefore the message in the code reads “think out of the box. seriously. just finding a QR reader :-) ”. You can interpret this as a hint in two ways: literal (that is, not looking at the code itself, but at a part of the image outside) and portable (not limited to standard approaches, but looking for something more interesting). The real password was hidden in the upper field of the image (above the code), written in letters of a slightly different color than the background (a classic technique in quests of this genre, but not everyone is familiar with it). To find it, you could play around with a picture in some graphic editor, for example, apply invert or color equalize, or simply fill the text area containing the upper left pixel with a different color.
')
Level 1.


The password (along with the pwd prefix pointing to it :) is made up of the first characters of the text lines. The text about pbrain was a distracting maneuver, and, I dare say , it was a success - a lot of players seriously thought about how it can be interpreted in this dialect, despite the fact that the commands are just a few characters of the text.

Level 2


Another classic technique in such quests: the only feature of the image is the background color 0xDEC0DE; after several attempts, we find out that you need to enter it without a prefix and in lower case.

Level 3


The text of this level was very similar to the code on Brainfuck. Actually, if you replace non-team characters with dots, the text will become a code that displays a malicious message “brainfuck is not involved. that would be too obvious, er? try something easier. like ... counting? ”, hinting that something needs to be counted. At this point, lovers of complexity have thought about how to transform non-command characters into something informative. In fact, the code, as at level 1, was a completely distracting maneuver - what mattered was not the content of the text, but only its form, or rather, the number of characters in each line. The lengths of the lines 112, 119, 100, 58 ... were the ASCII codes of the characters that together formed the password.

Level 4


In the September article Unusual congratulations on the day of the programmer - 2 mentioned the graphical language Piet. Multicolored stripes with a predominance of white on a black background are characteristic of Piet programs that are generated automatically - some great examples are given on the language's website . When a language is already defined, the rest becomes a matter of technology: at least, to start a program, its upper left corner must not be black. Having twisted the picture in this way and that, we find out that it was enough to display it mirror-image about the vertical axis and run it.

Level 5


Remember, on the day of Pi, I wrote an article of Pi in programming languages ? This level just used one of these languages, Pi . This language even has a ready-made interpreter in Python, so the task was to identify the language and search for and launch the interpreter. Of course, it was not necessary to interpret it manually, just as I did not create the level manually :-)

Level 6


This level was the most time-consuming for me - with the idea of ​​a program on Befunge , in which another will be hidden, I have been driving for about four months now and only now brought it to mind. If you run this program in an interpreter without debug mode, it will simply output “the princess is in another castle”. But if you guess to turn on debugging, in order to follow the movement of the instruction pointer over the field of commands, it will be noticeable that it bypasses a certain area (starting at two nines in the second line). If you carefully select this area and run it separately, just get a password. Alternatively, you can replace the first character <in the second line with> - then the main program will switch to executing “hidden” commands, and after the start of the explicit message it will output the hidden one.

Level 7


I am very proud of this level - it is perfect, well, not a bit connected with programming languages! I accidentally stumbled upon the beautiful word Hexakosioihexekontahexaphobia (if by syllable, this is a phobia of the number 666), I went to Wikipedia to see what was written about it, then I followed the link and found myself on the Greek number notation page. It was impossible not to use! To create the very level, I used a more detailed article Ionian numeration . As a result, the picture was interpreted as a Greek record of a large number, which was the password.

Level 8


The eighth circle of the quest hell ... Well, of course, this is Malbolge , an unrealistically harsh esoteric language for writing programs on which you have to write generator programs. According to rumors, it has not yet managed to implement a single cycle or conditional transition; even the code "99 bottles of beer" on Malbolge, presented some time ago, displays the lyrics without using cycles. However, the output of a short message is relatively simple. At this level, it was only necessary to identify the language (which is not so easy if we consider that it is usually referred to only as “that terrible language”, without examples of code) and to find and launch an interpreter (you can author, since it is preserved).

Source: https://habr.com/ru/post/135608/


All Articles