2026/9/25
怎麼在不開啟的情況下檢查ZIP壓縮檔裡面有什麼?
收到一封來路不明的郵件,附件是個 ZIP 壓縮檔,第一個念頭通常是不要直接解壓縮。解壓縮等於執行潛在風險,裡面可能藏著惡意腳本、zip bomb、路徑穿越檔名或只是不該打開的執行檔。問題是,客戶、記者或審計單位又常常需要先知道裡面到底裝了什麼,檔名、數量、大小、修改時間是否合理,而不是盲目冒險。這時候免解壓縮的內容物檢查就很重要,它不是要證明檔案合法,而是先做技術性盤點,降低暴露風險。
ZIP 格式本身就是為了清單化而設計的。檔案內容被壓縮後,ZIP 會在尾端保留一個中央目錄 Central Directory,裡面記錄了每個成員檔名、壓縮前後大小、壓縮方法、CRC32 校驗碼以及修改時間戳。因為這個目錄是獨立的,所以工具只要讀取檔尾就能列出清單,而不需要把每個檔案解回磁碟。用命令列的 unzip -l、7-Zip 的檢視功能,或檔案總管的內容預覽,都能做到類似效果。實務上這步驟足以判斷裡面是否夾帶 .exe、.bat、.ps1、.lnk 等高風險副檔名,是否出現異常長的路徑、是否檔案數量遠超過預期。對需要快速篩選的情境來說,這是第一道防線。
清單只能告訴你名稱和大小,看不到檔案本體的真實內容類型。同一檔名可以偽裝,副檔名也能造假,壓縮後的大小並不代表風險等級。更可靠的做法是提取技術中繼資料與密碼學指紋。一個 ZIP 壓縮檔本身也有建立時間、修改時間、壓縮方法、編碼方式、評論欄位等資訊,而裡面的每個成員也有各自的時間戳與 CRC32。把這些資訊完整記錄下來,就能在不解壓的情況下建立一份可被追溯的清單。例如收件人寄來合約資料包,你可以先確認包內是否包含 12 份 PDF、3 份簽名影像、總大小是否與說明相符,檔名是否遵循公司編碼規則,時間戳是否集中在合理區間內。這些都是技術事實,不是法律判斷。
這正是為什麼在需要可稽核紀錄的工作流程中,會用到專門的檔案鑑識平台。把 ZIP 上傳到 FilesAudit 後,系統會解析中央目錄並產出結構化的清單,包含每個成員的檔名、未壓縮大小、壓縮大小、壓縮演算法、CRC32、最後修改時間等,並同時計算整個 ZIP 檔的 SHA-256 與 MD5。產出的 PDF 報告可以作為交接或存檔依據,裡面不會宣稱檔案真偽或著作權歸屬,只記錄技術特徵與時間點。想更深入了解 ZIP 在中繼資料層會暴露什麼資訊,可以參考 ZIP 檔案的中繼資料檢視方式 裡的結構說明。
實務上常會搭配雜湊比對來做完整性確認。假設你從官方來源下載了一個資料包並取得對應的 SHA-256 清單,收到合作方轉寄的 ZIP 後,先計算整個包的雜湊值是否一致,再比對內部成員的 CRC32 是否與原清單吻合,就能判斷傳輸過程是否被竄改。若需要批量處理大量壓縮包,例如記者單位收到多個爆料壓縮檔、法務單位收到的證據光碟備份,人工逐一列清單會非常耗時,這時使用 FilesAudit 桌面版 可以在本地離線完成大量檔案的中繼資料提取與雜湊計算,避免上傳敏感資料的顧慮,同時保留完整的時間戳紀錄。
安全性考量不能只看清單。名義上是圖片的檔案可能實際是偽裝的執行檔,ZIP 也可能利用重複壓縮、極小壓縮比來製造 zip bomb,在解壓時耗盡記憶體。免解壓縮檢查的價值就在於,你可以在不觸發任何解壓程式碼的情況下,先看到結構異常,例如單一成員宣告未壓縮大小為數十 GB、壓縮比異常高、檔名包含 .. 或絕對路徑等。如果清單已經出現明顯紅旗,就沒有必要冒險打開。反之,若清單乾淨且時間戳、大小均合理,再決定是否在隔離環境中進一步檢視。
最後要提醒,技術中繼資料能證明的是檔案在某個時間點的技術特徵是否一致,無法證明檔案內容的真實性或法律權利。兩份內容完全相同的檔案會產生相同的雜湊值,兩份不同的檔案不會碰撞,這是密碼學指紋的特性,而不是法律上的真偽認定。當你需要向第三方說明「我沒有打開過檔案,但我已記錄其內容清單與指紋」時,一份帶有時間戳的鑑識報告就很有幫助。相關的驗證思路在 電腦中毒後怎麼確認檔案沒被竄改 這類情境中