Un fișier de 420 octeți este decomprimat într-o imagine png de 40 gigapixeli

În vremurile vechi au fost populare bombe cu zip și arhive recursive, care sunt despachetate. O bombă cu zip poate fi folosită uneori pentru un atac DoS. De exemplu, fișierul notoriu 42.zip are o dimensiune de 42 kilobytes. Dacă începeți să îl despachetați, procesul va continua până când setul de date ajunge la limita superioară a despachetării de 4,3 gigaocteți. Procesul va necesita mai mult de 4,5 petabyte în RAM (4 503 599 626 321 920 octeți).







Programatorul și hackerul David Fifield (David Fifield) se întreba unde se poate aplica "bombe de arhivă". Imediat vine în minte formatul grafic al PNG, care utilizează algoritmul de comprimare DEFLATE în biblioteca zlib.







Care va fi dimensiunea maximă a imaginii cu dimensiunea minimă a fișierului? Ideea este că fișierul poate fi descărcat rapid de pe Internet, dar nu se încadrează în memoria RAM pe un computer personal.

În primul rând, algoritmul DEFLATE înlocuiește liniile repetate cu indicii (LZ77), fiecare pereche de biți codificând 258 octeți identici cu zerouri. Raportul de compresie este de 1032 la 1.

Apoi bzip2 preia, ceea ce comprimă un set lung de valori identice în forma cea mai compactă.

În arhiva de 420 de octeți există un fișier PNG de 6,132,534 octeți (5,8 MB) și o imagine de 225,000 x 225,000 pixeli (50,625 gigapixeli). Într-un tampon de pixeli cu trei octeți per pixel, imaginea va dura aproximativ 141,4 GB.

Imaginea este aproape în întregime compusă din zerouri, cu un mesaj secret în centru. Pentru o mai bună comprimare, se utilizează un spațiu de culoare cu un singur bit, deși majoritatea programelor de redare grafică rezervă încă trei biți pe pixel și extind imaginea la 141,4 gigabytes.

2) instalați un nou favicon pe site.

Distribuiți știrile prietenilor dvs.:







Trimiteți-le prietenilor: