/Разборы задач
29 октября 2026
Райтап на задачу «Границы лишь в голове»
Разбор изменения размеров JPEG через hex-редактор: ищем скрытую часть изображения в задаче «Границы лишь в голове».9
18

Stegano
Задача «Новогодний смех»
Описание: «Одна минута новогодних колокольчиков и смеха Пикси — это и так уже ультра-хорошо, но найти флаг ещё лучше».
Также нам дан WAV-файл, в котором смех Пикси. Теперь проверим этот файл, чтобы посмотреть его характеристики.
На слух что-то определить невозможно, значит будем смотреть на этот звук глазками. В этом нам поможет audacity, открываем его и закидываем туда наш wav file.
Мда, так мы ничего не поймем, поэтому нажимаем на «...» --> дальше нажимаем Спектрограмма и смотрим:
Тут мы по-прежнему ничего не видим, попробуем побаловаться с настройками спектрограммы, которые находятся там же (...).
Почему нам стоит покрутить разные настройки спектрограммы? Ответ весьма простой — наша стеганография спрятана в звуке, т. к. мы не можем её услышать — значит она находится на высоких частотах, чтобы человеческое ухо не смогло заподозрить что-то неладное (обычно выше 16 кГц). Далее мы выставляем настройки примерно таким образом:
Мы изменили шкалу на линейную для того, чтобы было удобнее смотреть на высокие частоты, вдруг там прячется заветный флажок. Также мы повысили частоту до 22050, т. к. выше просто нельзя оцифровать, все остальное либо обрезается, либо летит обратно в спектр (простыми словами просто смотрим на весь спектр, чтобы точно ничего не пропустить). Ещё важный момент: мы уменьшили размер окна, чтобы нам были чётче видны все микромоменты. Теперь можно сохранить наши изменения и перейти к анализу спектрограммы:
Превосходно! Теперь мы видим на самых высоких частотах какие-то подозрительные моментики, а ну-ка приблизим их и возьмем интервал времени поменьше. Делаем мы это с помощью зажатого ctrl и крутим колесико мыши. Получаем что-то наподобие этого:
Похоже на короткие и длинные тире, так еще и расстояние между ними одинаковое... Мне кажется, это что-то напоминает??? А если сделать так:
Тут-то уже картина становится яснее) Это не случайные шумы. Они четко ровные, это похоже на код, будто бы что-то включается и выключается — это OOK (on-off-keying).
Теперь предлагаю вернуться в самое начало нашего замечательного WAV-файла и проверить нашу гипотезу:
Получается 01000010. Первые 4 бита 0100 — это 4, а вторые четыре бита 0010 — это 2, а вместе эта парочка дает 0x42. В ASCII это не что иное, как буква «B». А теперь вспоминаем наш формат флага, который как раз выглядит так «BugCTF», и, о боже, он тоже начинается на «B». Теперь, чтобы не считать ручками 30 байт, можно упростить себе жизнь и написать себе простенький скриптик, который сам за нас посчитает и выдаст нам заветный флажок)
Наверное, чёт наподобие такого, а теперь тестируем наше творение и надеемся получить флажок!!
УРА! Теперь флажок у нас! Бежим делать солв))