
В прошлом месяце попросил ребят взломать часть моего видео на YouTube. Конкретнее — восстановить содержимое папки, которую «запиксил» начиная с отметки времени 4:57. Годами все так делают, чтобы размазать, точнее, «расквадратить» части видео с конфиденциальной информацией. И все это время слышно:
— Небезопасно же! Захотят — прочитают!
Так это правда? Как на самом деле‑то? Вопрос не праздный. Чтобы докопаться до истины, кинул клич:
— Пятьдесят баксов тому, кто скажет, что написано под квадратиками!
Меньше чем через день три человека решили задачу. Все использовали слегка отличающиеся методы — аж страшно!
Статья ниже — отредактированная расшифровка видео:
Как им это удалось
Я расспросил каждого откликнувшегося — все были рады поделиться. Ничего удивительного! Кто любит что‑то мастерить или тем более занимается реверс‑инжинирингом, всегда готов похвастаться своим ремеслом. Еще веселее, когда подобное развлечение не несет рисков. Небольшое денежное вознаграждение — это вообще вишенка на торте.
Пользователь GitHub KoKuToru оказался настолько любезен, что поделился целым репозиторием. Он в подробностях рассказал о двух разных способах, которыми пытался «разпиксить» те самые кадры.
В основе — метод грубой силы. Сначала из окна извлекаются части сокрытого и выравниваются. Для вытаскивания пиксельных данных используется код, задействующий TensorFlow. Отдельные картинки объединяются в пусть и несколько размытое, но достаточно четкое для чтения изображение (почти):

Идея здесь в том, что пикселизация — своего рода ставни над графикой. Когда та перемещается, то удается заглянуть в разные ее части. Пока есть прочная система отсчета — например, окно неизменного размера — данные пикселей можно «накапливать».
Достижения наглядно видны на иллюстрациях.
Из-за некоторой погрешности, вызванной работой с окном вручную, конечный результат оказывается слегка «пятнистым». Во второй попытке использовался GIMP. Улучшенный алгоритм работы с окном, ffmpeg и чуть большее количество входных данных (извлеченных кадров) дали идеально читаемый результат:


Есть ли способ предотвратить
Размытие или пикселизация видео, особенно движущегося, может привести к похожим результатам. Несколько лет назад потребовался бы суперкомпьютер и докторская степень. Сегодня благодаря помощи ИИ в сложном кодировании и высокой скорости работы нейросетей депикселизация видео стала проще и быстрее, чем когда-либо!
Если компьютеры в чем-то и хороши, так это в нахождении порядка в кажущемся хаосе. Мы уже считаем чем‑то само собой разумеющимся извлечение чистого голоса из ужасной записи.
Чем сильнее движения в видео — тем больше пикселов придется обработать при реверс‑инжиниринге. Однако тем выше и уверенность в результатах! Если бы сокрытая часть не перемещалась, то такой подход вообще не сработал бы. Да, удалось бы угадать пару букв, но и то — без особой уверенности.
В дальнейшем, если мне действительно понадобится скрыть конфиденциальные данные — наложу на нужную область маску чистого цвета. И никаких эффектов размытия или пикселизации!
Интуитивно может показаться, что заблюривание лучше расквадрачивания… но это, скорее всего, просто иллюзия. Хорошо бы услышать в комментариях больше экспертных мнений от тех, кто имел дело с подобным видом обработки изображений.
Удивительно, чего можно добиться с помощью нейросети, изобретательности и времени!
Полагаю, мораль этой истории такова. Если не хотите, чтобы прочитали какие‑то данные — не публикуйте их в интернете.
Репозиторий KoKoToru на GitHub расскажет обо всех технических подробностях эксперимента.