Файл с размер 420 байта се разкомпресира в PNG изображение с резолюция 40 гигапиксела

Преди много години бяха доста популярни zip-бомбите, които се разархивират в себе си. Zip-бомбата може да се използва и за организиране на своеобразни компютърни атаки. Пример за това е файлът 42.zip (unforgettable.dk), с размер 42 KB. При опит да бъде разархивиран, процесът продължава, докато се запълнят системните ресурси, и би могъл да заеме 4,5 PB дисково пространство.

 

   420     PNG    40

Програмистът Дейвид Фифийлд измисли нов начин за използване на тези архиваторни бомби. Той се досетил, че по подобен начин е организиран графичният формат PNG, в който се използва алгоритъма за компресиране DEFLATE, включен в програмната библиотека zlib.

Той пробвал най-различни варианти и накрая получил файла spark.png.bz2 с размер 420 байта. Алгоритъмът DEFLATE заменя повтарящите блокове с указатели, като всеки два бита кодират 258 нулеви байта. Компресията в този случай достига 1032 към 1.

След като DEFLATE приключи работата си следва използването на алгоритъма bzip2, който компресира дългите последователности, съдържащи еднакви символи, в максимално компактен вид.

В крайна сметка, в архива с размер 420 байта се намира PNG файл с размер 6 132 534 байта (5,8 MB) и изображение с размер 225 000 х 225 000 пиксела (50,625 мегапиксела). Но в буфера за пиксели, който използва три байта за всеки пиксел, изображението заема около 141,4 GB.

Изображението почти изцяло е съставено от нули, но в центъра има таен текст. За по-добра компресия се използва 1-битово цветово пространство, но повечето програми за обработка на графика използват по три байта на пиксел и разгръщат изображението до 141,4 GB.

Коментари
Все още няма коментари
Статистика
Прегледи 101
Коментари 0
Рейтинг
Добавена на04 Септ 2015
ИзточникKaldata

Тагове
DEFLATE