檔案簽章(魔術位元組)清單是一個精簡、以瀏覽器為基礎的參考,收錄十二個來源核對過的偏移零前綴,涵蓋常見格式,包括 JPEG、PNG、GIF、PDF、ZIP、GZIP、7-Zip、RAR 4、RAR 5、ELF 和 SQLite 3。每一列將格式名稱與檔案開頭的精確大寫十六進位位元組配對,方便複製到偵測規則、事件分析紀錄或文件片段中。由於整個資料表完全在您的瀏覽器中執行,因此可以將它當作 API 的替代方案:不必啟動 libmagic 守護程序、將樣本傳送到遠端簽章服務,或串接 python-magic,就能獲得快速的本機查詢,而且永遠不會讀取或上傳檔案。本參考明確標示其限制:前綴固定於偏移零、不重現通用的魔術規則,且短序列可能與不相關的內容發生碰撞。接下來的章節將說明涵蓋範圍、如何逐步查詢簽章、為什麼這個資料表能作為完整 API 的精簡替代方案,以及決定前綴比對是否足以信任未知檔案的安全性注意事項。

file signatures list api alternative
瀏覽器中的檔案簽章清單 API 替代方案

資料表涵蓋的內容

本參考圍繞著十二種在網路上傳、內容類型檢查與鑑識工作流程中反覆出現的格式所建構。影像佔四列(JPEG、PNG,以及兩種常見的 GIF 標頭),這是因為 GIF 有兩個有效的魔術字串,若偵測器漏掉其中一個,就會在靜默中誤判真實的檔案。文件以 PDF 為代表,這是僅次於影像的第二常見二進位上傳格式。封存檔佔最大比例:ZIP 本機檔案標頭、GZIP 串流簽章、7-Zip 起始位元組,以及兩個 RAR 版本。ZIP 列刻意標示為容器,因為相同的前綴也會開啟 DOCX、XLSX、JAR、EPUB 及其他以 ZIP 為基礎的封裝。可執行檔佔一列(ELF),資料庫佔一列(SQLite 3)。每個項目都固定於偏移零,因此無論您是使用十六進位檢視器、串流位元組讀取器或單行腳本進行比對,相同的十六進位值都能適用。

格式常見副檔名類別容器註記
JPEG.jpg, .jpeg影像—
PNG.png影像—
GIF (87a).gif影像—
GIF (89a).gif影像—
PDF.pdf文件—
ZIP.zip容器封存檔亦適用於 DOCX、XLSX、JAR、EPUB
GZIP.gz, .gzip, .tgz壓縮串流—
7-Zip.7z封存檔—
RAR 4.rar封存檔—
RAR 5.rar封存檔—
ELF(可執行檔,無固定副檔名)可執行檔—
SQLite 3.sqlite, .sqlite3, .db資料庫—

每列精確的偏移零位元組都列於工具本身;請直接從顯示的大寫十六進位序列複製,避免憑記憶轉錄數值。

如何逐步查詢檔案簽章

  1. 在瀏覽器中開啟檔案簽章(魔術位元組)清單參考。
  2. 依格式名稱、副檔名、十六進位位元組,或「container」等註記進行搜尋,將資料表縮減至您需要的列。
  3. 在可信任的二進位檢視器中開啟候選檔案,確認偏移零位元組與資料表中以空格分隔的大寫十六進位序列相符。
  4. 複製顯示的前綴,並貼入文件、經過測試的偵測規則、上傳檢查腳本或事件分析紀錄中。
  5. 在信任或處理該檔案之前,請使用維護良好的解析器確認完整結構,因為前綴僅是一項訊號。

為何這能作為 API 的替代方案

像 libmagic 這樣的完整簽章 API 涵蓋數千種格式,會評估間接偏移、遮罩、數值端序、字串與巢狀條件。十二列的參考並不試圖取代這一切。它的定位是涵蓋您在分流上傳、偵錯內容類型不符,或撰寫快速規則時最常優先使用的格式,並且無需網路往返、伺服器相依、執行階段繫結或帳戶。沒有 Python 安裝、沒有 magic 檔案下載、沒有 pip install python-magic、沒有獨立的 API 金鑰,也不必擔心樣本會離開瀏覽器分頁。由於各列皆經來源核對,並受精確大小與唯一性測試保護,您可以放心地將前綴貼入回歸測試套件,確信它就是您預期的值。當格式超出這十二個,或您需要多重偏移規則時,下一步仍是參考底層的魔術資料庫與格式規格。

容器的模糊性與 ZIP 列

ZIP 本機檔案標頭是清單中最容易被誤讀的簽章。相同的偏移零前綴也會開啟 Office Open XML 文件,例如 DOCX 和 XLSX、Java JAR 封存檔、EPUB 檔案,以及其他以 ZIP 為基礎的封裝。本參考明確標示此限制,而非假裝該前綴能唯一識別下載內容。健全的偵測器會檢查必要的內部路徑、元資料、內容類型與關聯性,同時防範解壓縮炸彈與路徑穿越攻擊。例如,DOCX 檔案應包含 [Content_Types].xml 與 word/ 目錄;JAR 則應包含 META-INF/MANIFEST.MF。以 ZIP 為基礎的封裝若未在沙箱中處理,解壓縮至可寫入路徑並不安全,因為項目可能包含 ../ 片段,或設計用於展開的巢狀封存檔。容器前綴是分流的起點,而非結論。

本參考未涵蓋的限制

本資料表刻意精簡。它不包含可執行檔子類型、媒體編解碼器、磁碟映像、字型、郵件格式或所有封存檔變體。它不重現通用的 libmagic 規則,因此無法評估非零偏移、間接偏移、遮罩或版本特定結尾的位元組序列。它不會掃描上傳的檔案:沒有拖放、沒有擷取、沒有伺服器端解析器、沒有串流解碼器。若您需要完整的檔案類型函式庫,請將本工具的參考連結至上游魔術資料庫與格式規格,並於該處實作正式環境的偵測。這十二列是針對最常見情況的起點,也是您在驗證自訂規則時的乾淨比對基準。

為何前綴比對不足以證明安全性

相符的前綴只是一項訊號,而非定論。相同的短序列可能與不相關的內容碰撞;惡意檔案可能帶有有效的魔術位元組,後接無效或危險的酬載;許多格式也允許前置資料或多個有效簽章。正式環境的偵測器應使用維護良好的解析器驗證完整結構、實施白名單、在伺服器端重新命名、隔離儲存、視情況封鎖主動內容,並以安全的標頭提供下載。針對高風險工作流程,可能需要防毒或沙箱分析。即使前幾個位元組相符,也應拒絕截斷的輸入,因為截斷的檔案將無法通過任何下游結構檢查。避免向不受信任的使用者洩漏解析器錯誤、檔案系統路徑或內部規則,並保持偵測函式庫與解碼器的更新。將畸形、多重格式、超大與巢狀樣本納入回歸測試覆蓋範圍。瀏覽器版的參考讓複製變得方便;複製前綴後您如何處理,才決定您的偵測器是否安全。

本參考如何保持準確

這十二列已對照file 指令的魔術資料庫與SEARCH GCK 檔案簽章集進行來源核對,並受精確大小與唯一性測試保護。標準與實作會持續演進,因此關鍵的正式環境規則仍應對照最新的上游文件進行驗證、記錄規則版本,並維護包含已接受格式與對抗性近似樣本的回歸樣本。請同時記錄觀察到的位元組與解析器判定結果,以便後續審查者能區分前綴相符與已驗證的檔案結構。

如需更深入的探討,請參閱HTTP 狀態碼 API 替代方案:私密的瀏覽器工具。

如需更深入的探討,請參閱Linux 指令清單:13 個安全的 GNU Coreutils 範本。