Как спрятать файл в картинке и опубликовать в Twitter

11 Aug, 2021

Репозиторий давно не обновлялся

Последнее обновление было 4 года назад.

2,603
🔱 153
👥 96

Когда Twitter ограничивает загрузку файлов, находчивые разработчики находят неожиданные обходные пути. Знакомьтесь — tweetable-polyglot-png, инструмент, который превращает обычные PNG-файлы в контейнеры для данных.

Картинка — это не только картинка

Проект Дэвида Бьюкенена позволяет встраивать до 3МБ произвольных данных в PNG-файл, который:

  • Корректно отображается как изображение
  • Проходит проверку Twitter и других платформ
  • Сохраняет встроенные данные после загрузки

Пример работы

Как это работает

Twitter оптимизирует загружаемые изображения, но оставляет «дырку» в системе — не трогает «лишние» данные в DEFLATE-потоке IDAT-чанка PNG. Автор проекта нашел способ использовать это для скрытой передачи файлов.

Технические требования к изображению-контейнеру:

Реклама
  • Хорошая степень сжатия
  • Минимум 257 уникальных цветов (если нет палитры)
  • Разрешение до 4096×4096 (но Twitter уменьшит до 680×680)
  • Отсутствие лишних метаданных

Где работает

Технология проверена на:

  • Twitter (конечно же)
  • Imgur
  • GitHub (превью репозиториев)
  • Discord

Не работает на Reddit — возможно, из-за особенностей обработки DEFLATE-потоков.

Практическое применение

  1. Скрытая передача данных — отправляйте файлы через соцсети
  2. Резервные копии — храните важное в изображениях
  3. Digital артефакты — создавайте произведения со скрытым смыслом
  4. Обход ограничений — когда нужно передать больше, чем разрешено

Особенно удобно со ZIP-архивами — инструмент автоматически корректирует offsets, сохраняя валидность архива.

Как попробовать

  1. Клонируйте репозиторий:
git clone https://github.com/DavidBuchanan314/tweetable-polyglot-png.git
  1. Подготовьте изображение-контейнер (рекомендуемые настройки экспорта в GIMP):

Рекомендуемые настройки экспорта

  1. Запакуйте свои данные в PNG и опубликуйте где угодно!

tweetable-polyglot-png — это:

  • Остроумное использование особенностей форматов
  • Практичный инструмент для специфических задач
  • Открытый код на Python (MIT License)

Проект особенно понравится любителям нетривиальных решений и специалистам по компьютерной безопасности. 2.5k звезд на GitHub говорят сами за себя — это стоящая техника в арсенале разработчика.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.