Насыщенные выходные: CTF и рейд в игре
Выходные получились более чем насыщенные. На прошлой неделе в одном из Telegram-каналов попалась реклама CTF от Авито, и я впервые решил принять участие в реалтаймовом CTF (для тех, кто не в курсе, CTF — это соревнования по «белому хакерству», когда нужно найти специально предусмотренные в системе или сайте уязвимости, через которые добыть «флаг» — секретную строку текста, подтверждающую выполнение задания). Соревнование должно было начаться в 12 часов в субботу и длиться до 18 часов воскресенья.
Но на него наложилось два важных игровых события в Tiles Survive. Первое — это битва за Аркадию, которая бывает по субботам вечером. Обычно там всё сводится к тому, чтобы набить то количество очков, за которые даются бонусы, а какой альянс что забирает, решается заранее на уровне договорённости глав альянсов. Но в этот раз всё было иначе: у нас в недельной альянсовой дуэли впервые за последнее время попался противник, почти идеально равный нам по силам. И исход дуэли решался во многом тем, кто больше набьёт очков на битве за Аркадию. Поэтому битва длилась два часа и была очень напряжённой. Причём в первые полчаса отрыв от противника был ощутимый, но противник нас догонял, и к самому концу сумел оторваться на 100M очков. Потом, правда, нашии выкрутились: после окончания Аркадии затеяли мини-войнушку с ещё одним альянсом нашего штата, и добрали недостающее в ней, а также за счёт использования ускорителей (в субботу очки даются почти за все ускорители, но понемногу) и т.п. Конкретно для меня победа в этой дуэли была особенно важна, так как во вторник я потратил кучу ускорителей на внеплановую достройку электростанции до 29 уровня, из-за чего поломались все планы развития. Но зато вторник я закончил на третьем месте дуэльного рейтинга!
А в воскресенье я впервые пошёл на такое игровое событие как рейд на резервуар. Прежде я на него не ходил из-за того, что наши утверждали, что без аудиосвязи там делать нечего. А у меня есть предвзятое отношение к аудио/видеосвязи, и пользуюсь я ей только в редких ситуациях с теми, с кем знаком по оффлайну. Потом меня убедили попробовать такой вариант: я сам не включаю ни камеру, ни микрофон, а просто сижу в наушниках и слушаю, что там обсуждают. В итоге как раз на этой неделе решился, а то, что рейд наложится на CTF не учёл.
В воскресенье проснулся раньше, чем хотел, выспался плохо. В итоге перед рейдом по CTF даже не пытался сделать. Сначала всё пошло не так: подключил bluetooth-наушники к планшету, в игре звук на них идёт, а в Телемосте — всё равно на динамик. Психанул, выключил, пожалел, что вообще во всё это ввязался (а рейд там устроен так, что на него надо регистрироваться за пару дней, и потом отдать место другому игроку нельзя). С недосыпа не сообразил залезть в настройки самого Телемоста, скорее всего, там можно было указать, куда звук выводить. Потом нашёл решение — сел за комп, к которому подключил проводные наушники, а играл всё равно с планшета. Впрочем, пока я со всем этим возился, pilulka (глава альянса) написала мне краткую вводную текстом. Причём потребовался всего один абзац, дальше я сам более-менее сориентировался по ходу рейда.
Рейд начался хорошо: в первые полчаса мы устойчиво обходили противника по количеству добытой воды. Но где-то к середине что-то пошло не так: противник сосредоточился на бочках, с которых даётся не особо много воды, зато непрерывно, а наши основные игроки занимались тем, что сражались за другие объекты, за которые дают больше воды, но только после удержания в течение определённого времени. А удерживать их не давали сильные игроки противника. В итоге в какой-то момент они существенно нас обогнали.
Мне по распределению ролей доставался контроль над бочками в левой части карты. Но бочки, в отличие от остальных объектов, на мини-карте не показываются, их надо искать свободным перемещением. Я про это не знал (равно как и то, сколько бочек в игре вообще), поэтому минут пять держался вместе с ещё одной участницей возле одной бочки, которую всё же удалось найти. Потом прилетел какой-то противник 30 уровня (максимальный уровень в игре, у меня сейчас — 29), который сжёг моё поселение (после этого сожжённого игрока выбрасывает на стартовую позицию на краю карты). Стал искать бочки снова и нашёл место, где стояло две бочки рядом, и ещё одна — в пределах видимости. Занял все три, и несколько минут спокойно сидел. Потом появился другой противник 30 уровня, но с плохо прокачанными войсками, так, что полным отрядом я его мог победить. И тут началась борьба за эти три бочки, которая длилась до самого конца рейда. Довольно быстро я сообразил, что на двух ближних бочках отлично работает такая тактика: сильным отрядом вышибить противника, потом тут же отозвать сильный отряд, и заскочить более слабым (всего отрядов у меня четыре), а сильный послать на другую или же оставить оборонять поселение, а на дальнюю бегать вторым, который противник мог пробить только своим первым. В итоге более-менее стабильно получалось держать две бочки из трёх.
Рейд мы проиграли, но даже за такой результат я получил более 9 тысяч жетонов резервуара, которые сразу же обменял на два жетона именного оружия для героев (всего на оружие каждому герою нужно набирать по 40 таких жетонов). Собственно, ради именного оружия я и решился пойти на резервуар — это самый стабильный источник жетонов для него. А в рейтинге по добытой воде оказался на 9 месте (из 30 участников альянса, принимавших участие в рейде).
Вообще, сегодняшняя игра позволила мне осознать, почему же мне так нравится Tiles Survive. Фактически, это воплощение моей мечты о мире, где не нужно рисковать и боятся будущего: даже если проиграл, всё равно не останешься ни с чем, а часть вознаграждения получишь. И почти всегда даются попытки попробовать ещё раз, если что-то сделал не так: напал на слишком сильного зомби, завалил мини-игру и т.п. И ещё это мир социальной справедливости, где есть система, что даже когда кто-то из донатчиков что-то реально ценное покупает, тем, кто не может себе это позволить, тоже что-то достаётся (те самые золотые яйца, которые нужно ловить в чате, или ящики, даваемые всем участникам альянса).
Но увы, CTF этого я уделил слишком мало времени. В субботу посидел несколько часов перед началом битвы за Аркадию и решил четыре задачи из категории Web. Причём на одной застопорился довольно глупо: там надо было либо обойти CAPTCHA для перебора Ещё несколько хотел решить после рейда, но только на то, чтобы успокоиться, затормозить мозг от эмоционального разгона и настроиться, ушёл почти час. А потом из-за нехватки времени занервничал, начал метаться между несколькими задачами, и в итоге не дожал ни одну. Хотя в двух довольно неплохо продвинулся — на форензику и криптографию. В задаче по криптографии нужно было понять алгоритм шифрования, и на одном из его этапов каждый байт шифровался независимо от остальных, но при этом не простым xor, а заменой по какой-то непонятной схеме. И я никак не мог понять, как лучше делать: то ли искать закономерность, по которой происходит подстановка, то ли просто написать скрипт, который прогонит через шифратор все 256 байт и просто составит словарь для дешифровки без всяких закономерностей. Кстати, сейчас постепенно начинаю понимать, что в realtime CTF нужно, во-первых, сохранять все добытые ключи, пароли и прочее — иногда бывают взаимосвязанные задачи, а во-вторых, как только какое-то действие начиет требовать регулярных повторений (то же подключение к серверу с шифратором), нужно его заскриптовывать. Благо сейчас зачастую это можно поручить нейросетям (такое их использование правилами допускается).
В общем, могу сказать, что эти выходные прожил именно так, как и представлял себе счастливую жизнь — получая удовольствие и от игры, и от CTF! К тому же CTF интересно сделан в плане сквозного сюжета — про противостояние пчёл и барсуков-медоедов. Даже просто изучать сайты с заданиями было удовольствием! Очень ЧИшно придумано, выражаясь языком соционики. Да и задания в целом интереснее и разнообразнее, чем на CodeBy. Заодно ещё раз убедился, что в условиях конечности отведённого на задачу времени меньше отвлекаюсь и лучше концентрируюсь. Теперь буду и дальше участвовать в подобных мероприятиях (весной попадалось что-то аналогичное от МТС, но тогда не стал регистрироваться из соображения, что за короткое время ничего не успею и только расстроюсь из-за нулевого результата). Впрочем, сейчас увидел, что задания будут доступны до 26 июля, но уже без начисления очков. А ещё будет конкурс видеоразборов от тех, кто смог решить задачи. Так что буду изучать и набирать опыт на будущее.
Плюс ещё задача. Причём оказалась очень простой в итоге, если правильно суметь понять подсказку, что искать.