По условию задачи у нас есть странная картинка и описание: «Этот лабиринт скрывает в себе флаг». Также известна категория – misc, то есть тут может быть что угодно, но сложность обозначена easy, значит, ничего сложного или глубокого искать не нужно.
Текст задачи странноват и ничего не проясняет, поэтому стоит посмотреть на саму картинку.
Тут мы видим структуру QR-кода
Если внимательно посмотреть на картинку, можно узнать структуру QR-кода, только на нём не хватает трёх квадратов по углам, которые служат маркерами для позиционирования камеры. Такие квадраты всегда расположены в одних и тех же углах – левом верхнем, левом нижнем и правом нижнем. Но наш «лабиринт» имеет пустые места в других углах, что наталкивает на мысль: картинка из задачи повёрнута.
Чтобы камера или сканер смогли прочитать данные, нужно развернуть изображение на 90 градусов по часовой стрелке и добавить три квадратика по углам, за которые «зацепится» сканер и «поймёт», как считать данные.
QR-код может быть любого цвета – это не проблема для сканеров, но привычнее для человека, когда цвета контрастные: чёрно-белые.
Теперь полностью понятно, как восстановить данные и прочитать их. Остаётся только обработать картинку из задачи. Всё это вполне реально и быстро сделать в любом графическом редакторе. Но, чтобы разбор был интереснее, часть манипуляций сделаем кодом на Python: повернём картинку на 90 градусов и сделаем цвета чёрно-белыми. Ниже код, который это выполняет:
Остаётся только «прилепить» три квадрата по углам – и можно считывать данные любым телефоном или онлайн-сканером.
И напоследок ещё один вариант обработки – магия от Пикси.