Под катом описание того, как я прошел квест от mail.ru (квест). Если не хотите портить впечатление от квеста, не ходите под кат.
Спасибо за внимание!
Если нет приветственной страницы
В самом начале после перехода по ссылке я увидел картинку, что квест не предназначен для мобильных устройств. Запустив девелоперскую консоль хрома, я нашёл в style.css блок media и изменил 1200px на 120px, после этого увидел первоначальную страницу.
Решение 1-го задания
Первое задание было простым — в исходном коде страницы было указанно секретное слово: white.
Решение 2-го задания
Ответ так же в исходном коде страницы, а именно в комментариях.
Ответ: W3C.
Ответ: W3C.
Решение 3-го задания
Ответ в исходном коде, необходимо перейти в конец страницы, которая содержит 10 000 строк.
Ответ: молодец.
Ответ: молодец.
Решение 4-го задания
Вопрос с неправильной кодировкой, необходимо указать кодировку в браузере UTF-8 и получить ответ: кракозябры
Решение 5-го задания
В исходном коде страницы есть изображение sequence.gif. Открываем его в отдельной вкладке, жмём «обновить» и видим ответ: джиф.
Решение 6-го задания
В исходном коде страницы есть изображение, но на него указывает неправильная ссылка. Открываем её в отдельной вкладке, исправляем имя файла на blok_shema.png. В итоге получаем алгоритм подсчёта факториала 10. Поисковая строка яндекса хорошо умеет считать факториал.
Ответ: 3628800.
Ответ: 3628800.
Решение 7-го задания
В исходном коде страницы есть закодированная подсказка, декодируем её при помощи link получаем: «Если координаты у вас получаются не в Москве, значит вы что-то делаете не так.»
Дальше я посмотрел координаты Москвы, сопоставил с тем, что находится на странице, преобразовал и получил следующие координаты: 55°47.48916′N 37°32.94132′E. Ввёл их в Яндекс.карты и получил улицу Уго Чавеса, ответом была фамилия данного политического деятеля.
Дальше я посмотрел координаты Москвы, сопоставил с тем, что находится на странице, преобразовал и получил следующие координаты: 55°47.48916′N 37°32.94132′E. Ввёл их в Яндекс.карты и получил улицу Уго Чавеса, ответом была фамилия данного политического деятеля.
Решение 8-го задания
Следующие задание я решил наугад, не понял текст. Увидел в исходном коде страницы файл mikrotochka.png и открыл его, дальше я просто ввел my.com и попал на следующий уровень
Решение 9-го задания
Задача на знание систем счисления: 7+7 =14 в десятичной системе. Соотвественно число 16 — это число в восьмеричной системе счисления. Осталось число 49 перевести в восьмеричную систему счисления и получить результат: 61
Решение 10-го задания
Так как я не помнил коды данных символов, я просто нашел их в интернете и скопировал. ±§¤
Решение 11-го задания
Смотрим в исходном коде страницы имя файла. Скачиваем его, смотрим мета-данные и получаем ответ: Yarrrost.
Команды для ubuntu
Решение 12-го задания
В этом задании вызываем в консоле отладчика функцию stepbystep().
Код
for (i=0; i<10000; i++) { stepbystep() }
Решение 13-го задания
Решение 14-го задания
На данной странице присутствуют ip-адреса, записанные одним числом. Вот статья автора квеста о данной форме записи.
Получаем ответ: ko.mail.ru.
Команды для 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.
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
Ответ: 1577836800
P.S. Учтите, что время на машине, где запускаете команду, должно быть в UTC. Если нет, то необходимо запускать с указанием смещения по времени, в моём случае +7.
Команда для 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. А дальше прикинув что:
Методом перебора я получил ответ: 1,8,4,5,6
Решение
C+D=9
C+E=10
B+B>10
B — чётное число,
соотвественно B может быть 6 или 8.
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.
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-го задания
Для начала включим форму ввода и кнопку.
Итак, мы видим таблицу, в которой есть черные и белые прямоугольники. Предполагаю, что это может быть двоичный код, соответственно, это может быть: 01101110 или 10010001. Далее я нашёл таблицу соответствия между буквами и двоичным кодом link 01101110 соответствует «n». Значит белый прямоугольник — «0», а чёрный — «1». Остальные буквы:
Ответ: next.
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-ный код:
Вбиваем хэш в Яндекс и в этой статье находим ответ: 5555
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-заголовки. Было два заголовка:
После этого стало ясно, что надо применять частотный анализ текста. Написал небольшой скрипт, который определил частотность.
Нашёл таблицу частотности букв в wikipedia
Составил таблицу:
Потом воспользовался этим сайтом
Получив частотный словарь, я начал выбирать слова из 3-х букв. Вот первые соответствия, я выписал их в том порядке, в котором находил.
хох — как
хохиш — какие
хохиш-диць — какие-либо
хьнко-диць — когда-либо
уихьнко — никогда
пышнь — моего.
Потом я решил расшифровать одну фразу. Выбор пал на:
Частично дешифрованная фраза
Дальше стал искать соответствия:
тшнь — чего
фикипь — видимо
твь — что
Фраза стала:
По смыслу подходила фраза:
А дальше я вбил эту фразу в кавычках в поисковую строку яндекса и узнал, что эта фраза из романа «Золотой жук». Название романа и являлось ответом.
Для поиска слов использовал эту ссылку
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-х букв. Вот первые соответствия, я выписал их в том порядке, в котором находил.
хох — как
хохиш — какие
хохиш-диць — какие-либо
хьнко-диць — когда-либо
уихьнко — никогда
пышнь — моего.
Потом я решил расшифровать одну фразу. Выбор пал на:
Цедь ьхьдь тшвещшз тойьф куэ, хьнко пе
Частично дешифрованная фраза
Было около *е*ы*е* *а*о* дн*, когда мы
Дальше стал искать соответствия:
тшнь — чего
фикипь — видимо
твь — что
Фраза стала:
Было около четы*е* ча*ов дн*, когда мы
По смыслу подходила фраза:
Было около четырёх часов дня, когда мы
А дальше я вбил эту фразу в кавычках в поисковую строку яндекса и узнал, что эта фраза из романа «Золотой жук». Название романа и являлось ответом.
Для поиска слов использовал эту ссылку
Спасибо за внимание!