在 Linux / OSX 偵測檔案類型這件事情並不困難,用指令 “file”,像這樣
$ file temp.log
temp.log: ASCII text
$ file 1999.webm
1999.webm: WebM
不過 windows 上面沒有這麼方便的東西,得依靠一個神奇的工具 TrID
先來看看他的簡介
TrID - File Identifier
TrID is an utility designed to identify file types from their binary signatures. While there are similar utilities with hard coded logic, TrID has no fixed rules. Instead, it's extensible and can be trained to recognize new formats in a fast and automatic way.
他是透過作者預寫好的一堆 pattern ( XML 格式 ) 來判斷檔案是屬於什麼格式,所以你下載的時候,除了主程式 trid.exe 要下載之外,記得要另外下載定義檔 ( TrIDDefs.TRD package ),解壓所之後,把他跟 trid.exe 放在同一個資料夾底下。
運作起來像這樣( 官網的範例 ),他會給你特徵百分比
C:\TrID>trid.exe AvBatEx.bav
TrID/32 - File Identifier v2.24 - (C) 2003-16 By M.Pontello
Collecting data from file: AvBatEx.bav
Definitions found: 5702
Analyzing...
75.8% (.BAV) The Bat! Antivirus plugin (187530/5/21)
15.2% (.EXE) Win32 Executable MS Visual C++ (generic) (37706/45/16)
4.3% (.EXE) Win32 Executable Generic (10527/13/4)
3.1% (.DLL) Win32 Dynamic Link Library (generic) (7600/42/2)
0.8% (.EXE) Generic Win/DOS Executable (2002/3)
官網還有很多範例,大家可以直接去參考。
另外他還有 GUI 介面的版本,運作原理也是一樣的,只是用 .net 寫的,有 GUI 可以用比較親人 (誤),一樣也要下載 def file ( TrID XML defs )