Под катом описание того, как я прошел квест от mail.ru (квест). Если не хотите портить впечатление от квеста, не ходите под кат.

Если нет приветственной страницы
В самом начале после перехода по ссылке я увидел картинку, что квест не предназначен для мобильных устройств. Запустив девелоперскую консоль хрома, я нашёл в style.css блок media и изменил 1200px на 120px, после этого увидел первоначальную страницу.

Решение 1-го задания
Первое задание было простым — в исходном коде страницы было указанно секретное слово: white.

Решение 2-го задания
Ответ так же в исходном коде страницы, а именно в комментариях.

Ответ: W3C.

Решение 3-го задания
Ответ в исходном коде, необходимо перейти в конец страницы, которая содержит 10 000 строк.

Ответ: молодец.

Решение 4-го задания
Вопрос с неправильной кодировкой, необходимо указать кодировку в браузере UTF-8 и получить ответ: кракозябры

Решение 5-го задания
В исходном коде страницы есть изображение sequence.gif. Открываем его в отдельной вкладке, жмём «обновить» и видим ответ: джиф.

Решение 6-го задания
В исходном коде страницы есть изображение, но на него указывает неправильная ссылка. Открываем её в отдельной вкладке, исправляем имя файла на blok_shema.png. В итоге получаем алгоритм подсчёта факториала 10. Поисковая строка яндекса хорошо умеет считать факториал.

Ответ: 3628800.

Решение 7-го задания
В исходном коде страницы есть закодированная подсказка, декодируем её при помощи link получаем: «Если координаты у вас получаются не в Москве, значит вы что-то делаете не так.»

Дальше я посмотрел координаты Москвы, сопоставил с тем, что находится на странице, преобразовал и получил следующие координаты: 55°47.48916?N 37°32.94132?E. Ввёл их в Яндекс.карты и получил улицу Уго Чавеса, ответом была фамилия данного политического деятеля.

Решение 8-го задания
Следующие задание я решил наугад, не понял текст. Увидел в исходном коде страницы файл mikrotochka.png и открыл его, дальше я просто ввел my.com и попал на следующий уровень

Решение 9-го задания
Задача на знание систем счисления: 7+7 =14 в десятичной системе. Соотвественно число 16 — это число в восьмеричной системе счисления. Осталось число 49 перевести в восьмеричную систему счисления и получить результат: 61

Решение 10-го задания
Так как я не помнил коды данных символов, я просто нашел их в интернете и скопировал. ±§¤

Решение 11-го задания
Смотрим в исходном коде страницы имя файла. Скачиваем его, смотрим мета-данные и получаем ответ: Yarrrost.

Команды для ubuntu
sudo apt-get install jhead
wget puzzle.mail.ru/exif.jpg
jhead -v exif.jpg

Решение 12-го задания
В этом задании вызываем в консоле отладчика функцию stepbystep().

Код
for (i=0; i<10000; i++) { stepbystep() }

Решение 13-го задания
В этом задание надо зашифровать текст: vigenere при помощи ключа: cipher и шифра Виженера для этого я воспользовался этой ссылкой

Ответ: xqvlrvtm

Решение 14-го задания
На данной странице присутствуют ip-адреса, записанные одним числом. Вот статья автора квеста о данной форме записи.

Команды для Linux
$ ping 0x5E64B4C9
PING 0x5E64B4C9 (94.100.180.201) 56(84) bytes of data.
64 bytes from 94.100.180.201: icmp_seq=1 ttl=55 time=52.8 ms
^C
— 0x5E64B4C9 ping statistics — 1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 52.849/52.849/52.849/0.000 ms
$ host 94.100.180.201
201.180.100.94.in-addr.arpa domain name pointer ko.mail.ru.

Получаем ответ: ko.mail.ru.

Решение 15-го задания
На странице записано время в unix timestamp, можно воспользоваться online конвертером или командой date

Команда для Linux
date -d '01/01/2020 00:00:00' +"%s"

Ответ: 1577836800

P.S. Учтите, что время на машине, где запускаете команду, должно быть в UTC. Если нет, то необходимо запускать с указанием смещения по времени, в моём случае +7.

Решение 16-го задания
Задание, на которое я потратил больше всего времени, так как gimp упорно заливал не так, как мне хотелось. Поэтому я воспользовался этим онлайн редактором и получил нужный результат: 42.

Решение 17-го задания
В этом задании мы видим изображение в формате png, закодированное в base64. Я воспользовался данной ссылкой для получения изображения, в итоге получилось: spam.

Решение 18-го задания
Данное задание я решил методом перебора. A=1. А дальше прикинув что:

Решение
C+D=9
C+E=10
B+B>10
B — чётное число,
соотвественно B может быть 6 или 8.

Методом перебора я получил ответ: 1,8,4,5,6

Решение 19-го задания
Сначала я попросил подсказку
nslookup -type=TXT podskazka.donkeyhot.org
Server: 10.11.101.6
Address: 10.11.101.6#53

Non-authoritative answer:
podskazka.donkeyhot.org text = «NATO alphabet»

Затем наяндексил эту статью из wiki. Сопоставил изображения с алфавитом и получил ответ: AMIGO.

Решение 20-го задания
Для начала включим форму ввода и кнопку.

document.getElementsByName('answer')[0].disabled=false;
document.getElementsByName('btna')[0].disabled=false;

Итак, мы видим таблицу, в которой есть черные и белые прямоугольники. Предполагаю, что это может быть двоичный код, соответственно, это может быть: 01101110 или 10010001. Далее я нашёл таблицу соответствия между буквами и двоичным кодом link 01101110 соответствует «n». Значит белый прямоугольник — «0», а чёрный — «1». Остальные буквы:

01100101 - e
01111000 - x
01110100 - t

Ответ: next.

Решение 21-го задания
Смотрим исходный код, видим, что присутствует изображение: message_digest.png открываем его и получаем 16-ный код:
 6074c6aa3488f3c2dddff2a7ca821aab

Вбиваем хэш в Яндекс и в этой статье находим ответ: 5555

Решение 22-го задания
Изображены печеньки, значит надо посмотреть cookie. Я смотрел через Chrome DevTools -> Network->cookies.jpg->Request Headers и увидел: secret=we_have_cookies, соответсвенно ответ: we_have_cookies

Решение 23-го задания
Тут мы видим ребус «кофе в квадрате». Запишем кофе на английском языке, заменим букву «О» на «0». Получается c0ffe. Теперь умножаем c0ffee*c0ffe, получаем (link) ответ: 9180E4DC0144

Решение 24-го задания
Для начала определим системы счисления. 221 не делится на 2,3,5, соотвественно дальше перебираем простые числа. Получаем 13 и 17. Так как в первом числе есть символ «e», то соответсвенно это число в 17-ричной системе счисления, теперь просто приводим числа к одной системе счисления и складываем, получаем ответ: 13,17,GEEK

Решение 25-го задания
Самое интересное на мой взгляд задание. Для начала я начал искать подсказки. Следуя рекомендациям в исходном коде, я полез в HTTP-заголовки. Было два заголовка:

X-Podskazka-1:Eto russkiy tekst
X-Podskazka-2:Zashifrovan shifrom prostoy zameny

После этого стало ясно, что надо применять частотный анализ текста. Написал небольшой скрипт, который определил частотность.

import collections
# -*- coding: utf-8 -*-

fl = open("file.txt")
text = fl.read()

c = collections.Counter(text.decode('utf-8').replace(',','').lower())

total_word_count = sum(c.values())
for word, count in c.most_common(33):
    print word, count, count*1.0/total_word_count

Нашёл таблицу частотности букв в wikipedia
Составил таблицу:

Таблица соответствия
Таблица соответствия
Исходный текст Частотность букв русского языка
Ь О
Ш Е
О А
И И
В Н
У Т
Щ С
Д Р
Й В
Ф Л
Х К
Ю М
Ж Д
К П
П У
Э Я
Н Ы
Е Ь
С Г
Р З
Ц Б
Т Ч
А Й
Л Х
Ы Ж
З Ш
Б Ю
Г Ц
Я Щ
Ч Э


Потом воспользовался этим сайтом

Получив частотный словарь, я начал выбирать слова из 3-х букв. Вот первые соответствия, я выписал их в том порядке, в котором находил.

хох — как
хохиш — какие
хохиш-диць — какие-либо
хьнко-диць — когда-либо
уихьнко — никогда
пышнь — моего.

Потом я решил расшифровать одну фразу. Выбор пал на:

Цедь ьхьдь тшвещшз тойьф куэ, хьнко пе

Частично дешифрованная фраза
Было около *е*ы*е* *а*о* дн*, когда мы

Дальше стал искать соответствия:

тшнь — чего
фикипь — видимо
твь — что
Фраза стала:
Было около четы*е* ча*ов дн*, когда мы

По смыслу подходила фраза:
Было около четырёх часов дня, когда мы

А дальше я вбил эту фразу в кавычках в поисковую строку яндекса и узнал, что эта фраза из романа «Золотой жук». Название романа и являлось ответом.

Для поиска слов использовал эту ссылку

Спасибо за внимание!
Поделиться с друзьями
-->

Комментарии (36)


  1. osipov_dv
    04.10.2016 12:51

    Спасибо, я последний не осилил, он самый затратный по времени, а его-то как раз у меня и не было.


  1. gag_fenix
    04.10.2016 13:02
    +2

    Ох, ну раз пошла такая пьянка — немного дополню в стиле «что имел в виду автор»:

    7
    Задание — это сообщения формата NMEA, который является стандартным для GPS-приемников. Формат координат немного отличается от того, что кушает Google Maps, поэтому нужно сконвертировать.


    1. KeLsTaR
      04.10.2016 13:44

      В принципе и конвертировать не обязательно, погуглив хорошенько я нашел сайт, принимающий любой формат, при чем даже если не выписывать N и E координаты отдельно, а скопировать прямо как в задании

      5547.48916,N,03732.94132,E

      И вставить в поле вот на этом сайте http://putnik-abc.ru/


    1. Andy_Ion
      04.10.2016 16:25
      +1

      Я 12 сделал по-другому)


      12

      В консоли ввел x = 1 и нажал на кнопку.


    1. michael_vostrikov
      04.10.2016 17:29

      Насчет 23
      Можно в браузере открыть donkeyhot.org:70


  1. xxxphilinxxx
    04.10.2016 13:11
    +1

    Последний вопрос интереса ради решил разбирать без напрашивающегося частотного анализа, вручную: попросту читая текст и выискивая короткие слова и закономерности. Например, пара «так» и «как»,"*-либо". Держал параллельно исходник в нижнем регистре и результат с заменами в верхнем; перегонял прямо на странице джаваскриптом.
    Ушло около 20 минут на полную расшифровку, получил море удовольствия от задачи.


  1. Devtrix
    04.10.2016 13:22
    +1

    Да 25й самый затратный по времени. Подсказки нашел, но как-то не верилось, что нужно реально использовать частотность букв в куске текста и методом тыка смотреть не получилось ли какое-то хорошее слово. Я все искал вариант попроще.


  1. magalex
    04.10.2016 13:40
    +1

    Ответы это конечно же очень хорошо, но хотелось бы видеть само задание для каждой задачи.


    1. fireSparrow
      04.10.2016 16:17

      В начале статьи автор привёл ссылку на статью с самим квестом.


      1. fireSparrow
        04.10.2016 16:21

        UPD: Сейчас подумал, что возможно вы имели в виду, что текст заданий хорошо было бы вставить перед ответами. Но, к сожалению, там многие задания таковы, что нужно ковырять исходный текст самой страницы с заданием чтобы находить подсказки.


  1. Oxoron
    04.10.2016 14:11

    Если не ошибаюсь, в 4 задании я просто копи-пастнул кракозябристый текст в поле для ответа.


    1. caban
      04.10.2016 15:03

      Да, это более быстрое решение. Но и текст мог не совпасть.


      1. Antiless
        04.10.2016 19:04

        у меня совпал, а слово «кракозябры» не подошло


  1. punkkk
    04.10.2016 14:21

    Слово white даже не в коде, его можно выделить курсором.


    1. caban
      04.10.2016 15:04

      Да, просто к тому моменту у меня уже была открыта консоль.


  1. alexvoz
    04.10.2016 14:38

    Не хватает самих текстов заданий или скринов страниц с заданиями. Сам его не проходил из-за нехватки времени, по ответу понять задание сложно, а проходить его уже как то не актуально :)


    1. caban
      04.10.2016 14:51

      Зря, хороший способ размять мозги. :)


      1. alexvoz
        04.10.2016 17:26

        не спорю, но я уже прочитал ответы


  1. punkkk
    04.10.2016 14:39
    +1

    Для 12 можно в консоли браузера написать: x=1 и нажать кнопку.


    1. mirrr
      04.10.2016 15:26

      Или base64_decode('bm8gcGFpbiBubyBnYWlu') в консоль скопировать, оно же выполняется в итоге


      1. punkkk
        04.10.2016 15:28

        Да, это тоже в голову пришло, но мне было интересно именно перемешку посмотреть, можно ли ее прям так задеть. Вроде в js уже давно а с таким не сталкивался, вот и проверил. :)


  1. xtotdam
    04.10.2016 15:13
    +4

    Для 25го задания я строил частотный словарь по исходному тексту и по некому большому куску произведения, а потом скриптом на Python заменял буквы и смотрел текст на выходе на предмет осмысленности. Впрочем сначала я лажанул: использовал в качестве эталона (прости, Господи) кусок Донцовой и получил на выходе полную бессмыслицу. Потом исправился и взял Марка Твена, за что был вознагражден по крайней мере половиной алфавита сразу же) Вывод: Донцова — нездоровое чтиво)

    Алфавит
    a = 'ьшоивущдйфхюжкпэнерсцталызбгячм'    # исходный
    b = 'оаетинслрвукпмдьябчзыжхшц'	         # Донцова - плохо
    b = 'оеаинтсрлвкмдыпуяьгбхзчйжшюцщэ'     # Марк Твен - совсем другое дело
    f = 'оеаитнрлсвкпудмягызьбчшйжхюцщэф'    # финальный
    


    1. punkkk
      04.10.2016 15:17
      +2

      Буду ссылаться на ваш комментарий аргументируя качество произведений этой писательницы, спасибо! :)


      1. xtotdam
        04.10.2016 15:19

        Причем у нее небогатый алфавит, судя по моим результатам. Насчет словаря судить не берусь)


  1. khanid
    04.10.2016 15:36

    После 19 пункта я бросил это дело, ибо халтура местами пробивала неприлично.
    Ответ в виде транслитерации на русский gif сперва покоробил (Да, я понимаю, что хотелось показать знание идеи разработчиков о том, что задумано прочтение «джиф», но всему же своё место).
    П. 16 потом также смутил. Забывать о paint.net и гимп, искать редактор в онлайне или перебирать редакторы для получения специфической заливки — это странно. Можно отнести к борьбе с багами, но так можно много чего придумать. Так у каждого эникея/админа/программиста наберётся заданий вагон и маленькая тележка.
    Ну и вишенка на торте.
    После джифа выглядит плевком в лицо игрокам амиго в английской же транслитерации, хотя в поисковой выдаче браузер обозван на русском. Да и, по старой памяти, когда мэилосервисы я вычищал на машинах, амиго там был на русском. В итоге мало знать ответ. Надо ещё и перебирать написания. Двадцатое после этого даже начинать не стал.


    1. Semenar
      05.10.2016 10:19

      В пункте 16 автор сначала и использовал гимп, но он закрашивал не так, как надо, поэтому пришлось онлайн-редактор использовать.
      В 19 пункте ответ «AMIGO» не должен быть связан с браузером Амиго же. Ответ получается из расшифровки NATO alphabet, и было бы в высшей степени странно, если бы он выдавал русские буквы.


      1. khanid
        05.10.2016 13:37

        Там с картинок с ходу читалось амиго по первым буквам.
        Кажется, были буква альфа, две картинки не помню, потом картинка с игрой в гольф, последнюю тоже не помню. Указания, кроме адреса НАТО, что это не их браузер, тоже не было. Тогда тем более странен подбор такой задачи, до степени смешения.


  1. Sild
    04.10.2016 15:38

    Решение 4-го задания

    А оно не должно было работать если ответ я получил в стороннем приложении, не меняя кодировку в браузере?


    1. springimport
      04.10.2016 15:56

      Я ничего не менял, сработало.


      1. Sild
        04.10.2016 16:14

        А у меня до сих пор не работает ни в хроме на линуксе, ни в сафари/хроме под маком.


        1. springimport
          04.10.2016 16:30

          Я тогда скопировал строку и перекодировал используя декодер Лебедева.


  1. bertmsk
    04.10.2016 15:44
    +1

    > Тут мы видим ребус «кофе в квадрате».

    Вообще «кофе в квадрате» — это эспрессо (в кубе — ристретто). Поначалу пару минут не мог понять что же от меня хочуть в качестве отета )


  1. resau
    04.10.2016 20:38

    У меня на двух стационарных компах выдаёт картинку с «не предназначен для мобильных устройств».
    (firefox, opera. edge)


    1. caban
      04.10.2016 20:38

      В самом начале есть подсказка.


  1. Aingis
    04.10.2016 22:51
    +3

    Во многих заданиях можно не уходить далеко из браузера и получить ответ.

    Уровень №6
    Недолго думая, написал в консоли, глядя на алгоритм
    for(var x=1,M=1;x<10;)x++,M*=x // 3628800
    и получил ответ.


  1. evdokimovdmitriy
    05.10.2016 06:13

    23
    Решил иным способом.
    Цвет #c0ffee в бинарной записи (двойка навела на мысль) 11000000 11111111 111011
    10
    убираем лишние пробелы и переходим на следующий уровень