二進位檔案檢查器

拖入一個程式檔案——Windows PE(.exe、.dll)、Linux ELF 二進位檔案,或 macOS/iOS Mach-O——在動用更重的工具之前,先讀取它對自身的宣告:檔頭、區段與區段(segment)、它匯入的程式庫與函式、它的匯出與符號,以及其中每一個可列印字串,並附帶 MD5 與 SHA 雜湊值和各區段熵值。該檔案永遠不會離開你的裝置,也永遠不會被執行:它是在本頁面中開啟和讀取的,而不是上傳,因為你所懷疑的二進位檔案,恰恰是最不應該交給陌生人伺服器的檔案。

最後更新:

或者將檔案拖到此框中的任意位置。以下所有內容都從檔案本身、在本裝置上讀取。僅做靜態分析:檔案只會被剖析,永遠不會執行。限制:128 MB。

本頁面是什麼——以及不是什麼

這是一次初步的靜態檢查:檔案只會被剖析,永遠不會被執行,這裡的任何內容都不是惡意軟體判定。所列發現都是觀察結果,而不是定罪——未簽名的檔案是一個事實(許多合法工具都沒有簽名),熵值高於 7.2 是一個事實(加殼程式會提高熵值,但普通的壓縮資源也會),而 Authenticode 簽名區塊的存在並不能說明簽名是否有效,只能說明那裡有一個簽名。對於你不信任的檔案,如需第二意見,可將它的 SHA-256 與公開判定結果進行比對,入口在概覽索引標籤中——被搜尋的是雜湊值,檔案本身永遠不會被傳送。Android 套件有其專用的讀取工具 APK Analyzer;程式在網路上的行為屬於 PCAP Analyzer 的範疇;配套文章 AI 智能體能對你的應用程式進行逆向工程嗎? 則解釋了自動化分析如今已經走到了哪一步。

程式檔案在執行之前會宣告什麼

每一個原生程式檔案都以一份寫給作業系統載入器的意圖宣告開頭。Windows PE 會指明其目標機器、建置時間戳記、希望被載入到的位址以及所期望的子系統;它的區段表會列出程式碼、資料和資源所在的位置,它的匯入表則會按名稱列出它打算呼叫的每一個程式庫和函式,這最接近於一個封閉二進位檔案的目錄。ELF 二進位檔案會宣告其類別、位元組順序和機器、將啟動它的解譯器、核心必須對應的區段以及它按順序所需的共用程式庫。Mach-O 會宣告其 CPU 和檔案類型、它的區段與區段(section)、它連結的 dylib、識別該建置的 UUID,以及它的程式碼是否已簽名或經過 FairPlay 加密。這一切都不需要執行檔案、信任檔案或上傳檔案——它們全都位於載入器本身也會讀取的檔頭中。

本頁面讀取的正是這一層,而且刻意只讀取這第一層。它不會反編譯任何內容,不會脫殼任何內容,也不會告訴你程式碼做了什麼——那是 Ghidra、IDA 以及配套文章所介紹的智能體驅動工具鏈的工作。初步查看的目的是分診:這是否是你預期的架構,它是否已簽名,它是否是一個穿著原生外衣的 .NET 組件,是否有一個區段攜帶了密度可疑的資料,匯入清單是否列出了這個程式根本不應該呼叫的程式庫,以及別人傳給你的檔案是否與所有其他人拿到的檔案相同——雜湊值可以直接回答最後這個問題(雜湊產生器可以對文字或較小的檔案進行交叉核對)。在本機花五分鐘讀一讀檔頭,在安裝任何重型工具之前就能回答其中大部分問題。

常見問題

我的檔案會被上傳到任何地方嗎?

不會。檔案是在本頁面、你的裝置上開啟和剖析的,任何內容都不會被上傳、傳輸或儲存——分析檔案不會發出任何網路請求。頁面上唯一的外部連結是 VirusTotal 查詢,它以文字形式搜尋檔案的 SHA-256 雜湊值;檔案本身永遠不會被傳送。頁面載入完成後也可以離線工作。

這能告訴我一個檔案是否是惡意軟體嗎?

不能,任何承諾能做到這一點的檔頭讀取工具都是在誇大其詞。本頁面報告的是檔案所宣告的內容——格式、架構、區段、匯入、匯出、字串、簽名是否存在——這足以識別那些粗心的情況:實為 32 位元可執行檔案的「發票」、某個建置中有一個區段密度高得不合常理、未簽名的更新程式其雜湊值與廠商公布的任何值都不相符。判斷程式碼實際做了什麼,需要反編譯、沙箱執行或信譽良好的掃描器的判定。在這裡看到一個看起來乾淨的結果,應理解為「檔頭中沒有什麼看起來不對的地方」,永遠不要把它當作安全憑證。

什麼是熵,為什麼以 7.2 為標記線?

夏農熵衡量一段位元組看起來有多隨機,從 0(全部是相同的位元組)到 8(與隨機無異)。普通編譯程式碼和文字遠低於 7;壓縮資料接近 8,加密資料實際上就是 8。加殼程式會壓縮或加密程式的真實程式碼,因此熵值大致高於 7.2 的區段是標準的分診標記,表示「這裡面的某些東西被壓縮過」——但安裝程式、壓縮資源、嵌入的媒體和現代執行階段在完全合法的檔案上也會產生高熵區段。這是一個需要進一步查看的理由,而不是結論。

為什麼我的檔案顯示的結構這麼少?

因為本頁面報告的是檔案實際宣告的內容,而有些檔案宣告得很少。被剝離(stripped)的 ELF 可能根本沒有區段檔頭表(只有區段 segment);手工製作或被截斷的檔案可能在其檔頭所承諾的結構之前就結束了——在這種情況下,備註會明確說明這一點,而且所顯示的一切仍然是從實際存在的位元組中讀取的。而有些格式根本不在深度剖析器的處理範圍內:它們會按名稱被識別(ZIP、PDF、影像等),並獲得通用事實——大小、雜湊值、熵值、字串——而不會虛構細節。