【應用】這小小 46MB 炸彈壓縮檔,解壓後會立即炸裂你的硬碟空間!

37

一般來說檔案壓縮之後,如果能少一半就已經很厲害的,但國外有一位開發者不斷在研發如何把壓縮檔壓到最大,從最初的 42KB 解壓縮檔可變成 5.5GB 超大檔案,現在更打造出一個 46MB ZIP,解壓縮後可立即炸裂你硬碟空間的 4.5PB 炸彈壓縮檔 。


國外這位 David Fifield 開發者長期都在研究如何製作一個最佳的 ZIP 炸彈壓縮檔,過去已經成功研究出 42kB → 5.5GB 以及 10MB → 281TB 這兩個夠跨張的檔案,而最近他再次公布 46MB → 4.5PB 恐怖炸彈壓縮檔,這不論是誰的電腦都無法應付這容量。

下圖為 ZIP 檔案的結構:

您一定會有疑問,一般壓縮軟體不可能實現這麼高的壓縮比,根據 David Fifield 的說明,這是因為 ZIP 解析器所支援 DEFLATE 算法,是無法達到超過 1032 的壓縮比,而他找到其他方法繞過這個限制,簡單來說就是在 ZIP 檔裡不斷堆疊檔案,以便在多個文件中引用高度壓縮數據的內核,而無需製作多個副本:

有了炸彈壓縮檔的基本架構後,David Fifield 不斷的進行優化,一方面找出多少的 ZIP 檔案大小,可以擁有最大壓縮比,另一方面也必須考量 ZIP 格式的限制。

早些時候由於 ZIP 格式的限制,讓他在擴大檔案方面遇到障礙,無論如何巧妙壓縮,依舊無法超過 281TB 輸出。而當他使用 ZIP64 格式後,這問題就突破了,這格式可讓中央目錄標頭從原本的 46bytes 增加到 58bytes,本地目錄標頭也從 30bytes 提升到 50 bytes,最終就打造出這個 46MB 的炸彈壓縮檔。

不過 ZIP64 的相容性比較差:

David Fifield 在這篇文章中有詳細說明每個研究細節,有興趣了解更多的可點我查看,而他也有提供檔案下載,有需要的同學使用前記得先想想。