/Разборы задач
31 октября 2026
Райтап на задачу «Немое кино»
Изучаем строки MP4-файла и собираем скрытую строку Base64 с флагом.22
5

Stegano
Задача «Edit from planes»
Хард? Стега? 12 солвов? Автор мотгуль? Так ещё и видос на 1,2 ГБ! Это определённо наш выбор)
Итак, скачали мы это видео, посмотрели классный эдит и в конце видим милую Пикси в самолёте. Обычно в таких видео нужно искать вставленные кадры, но если мы посмотрим на 0,5, как говорит автор, то всё равно ничего не ясно. Предлагаю пойти самым надёжным путём и разбить всё на кадры):
Используем утилиту ffmpeg, только не так по-тупому, как я)) Иначе у вас будет такая ситуация:
АХХАХАХАХА. Ладно, это быстро фиксим и возвращаемся к решению:
Если весь терминал после ls забит фотографиями — вы делаете всё верно!
Теперь нам ничего не остаётся, кроме как посмотреть быстренько все пару тыс. кадров и получить результат! Какой результат — никакой! Никаких явных флешфреймов и т. д. нету. Значит, можно копать ещё глубже — часто в стеганографии скрывают что-либо в LSB (самые малозначимые биты). Для этого нам понадобится написать простенький скриптик на пайтоне по типу такого:
import os
import glob
from PIL import Image
def get_lsb(img_path, out_path):
img = Image.open(img_path).convert('RGB')
pixels = img.load()
w, h = img.size
out_img = Image.new('1', (w, h))
out_pixels = out_img.load()
for y in range(h):
for x in range(w):
r, g, b = pixels[x, y]
out_pixels[x, y] = r & 1
out_img.save(out_path)
in_dir = "/home/lol/Рабочий стол/кадры"
out_dir = "/home/lol/Рабочий стол/визуализация_lsb"
os.makedirs(out_dir, exist_ok=True)
files = glob.glob(os.path.join(in_dir, "frame_*.png"))
for f in files:
name = os.path.basename(f)
get_lsb(f, os.path.join(out_dir, f"lsb_{name}"))Теперь также просматриваем все кадры! Ого! У нас появилось нечто новое — Пикси, которая машет флагом)) А это интересно. Мне кажется, она неспроста держит флаг, я бы внимательно присмотрелся к нему. Когда мы пролистаем практически половину, мы увидим следующее:
Флаг на флаге? Очень мило). Теперь мы смотрим, какой это по счёту кадр, у меня 1309. Берём оригинал этого кадра (без LSB) и закидываем его на https://www.aperisolve.com/ и видим это:
Теперь нам остаётся только заапскейлить это фото и написать флажок)