Summer Vacations

Stego 799 pts

На входе — картинка `vacation.png`. Если провести классический LSB-скан по красному каналу, тогда быстро находится читаемая строка, похожая на флаг — и это ловушка. Настоящий флаг расположен в младшем бите альфа-канала. ## Решение Открываем картинку в RGBA (принудительно, чтобы гарантированно получить альфа-канал) и проходим по пикселям в растровом порядке (слева направо, сверху вниз). Для каждого пикселя проверяем условие: ```text (R * G * B) % 7 == 3 ``` Только те, что прошли фильтр, несут бит данных — и из них забираем младший бит альфа-канала: ```python if (r * g * b) % 7 == 3: bits.append(a & 1) ``` Накопленные биты группируем по 8 (старший бит первым) и собираем в байты. Нулевой байт — маркер конца данных, аналог `\0`-терминатора в C. Принимаем только печатаемые ASCII (`0x20`–`0x7E`); всё остальное — либо конец флага, либо мусор. Готовый солвер — [`solve/solver.py`](solve/solver.py). ## Флаг `caplag{p4t13nc3_r3v34ls_truth}`