iT邦幫忙

2026 iThome 鐵人賽

DAY 10
0
Security

新手的30天數位鑑識之旅系列 第 10

10|副檔名會說謊:用 Magic Number 找出真正的檔案格式

  • 分享至 

  • xImage
  •  

什麼是 Magic Number?

Magic Number 是檔案開頭常見的一段特定資料,用來辨識檔案格式。

下面列幾個比較常見的例子:

檔案格式 常見 Magic Number ASCII / 說明
JPEG FF D8 FF JPEG 開頭
PNG 89 50 4E 47 0D 0A 1A 0A .PNG
PDF 25 50 44 46 %PDF
ZIP 50 4B 03 04 PK
GIF 47 49 46 38 GIF8
Windows PE 4D 5A MZ

https://ithelp.ithome.com.tw/upload/images/20260923/20184054oa0ESUipJx.png

這些特殊的資料就像檔案的身分證。

副檔名是檔案名稱的一部分,而 Magic Number 是從檔案內容本身判斷格式。


副檔名為什麼不一定可信?

假設今天有一個真正的 PDF:

report.pdf

有人把它重新命名成:

report.jpg

檔名看起來變成 JPG,但檔案裡面的資料並沒有因此改變。

如果用 Hex Editor 查看檔案開頭,仍然可能看到25 50 44 46
,也就是%PDF

檔案名稱告訴你的,可能跟檔案內容真正代表的格式不一樣。

這時候就可以再次使用前面介紹的 HxD

假設有一個檔案:

test.jpg

把它用 HxD 打開,查看檔案最前面的資料。

如果看到:

FF D8 FF

就可以知道它符合 JPEG 常見的檔案開頭。

但如果是:

25 50 44 46

再對照 ASCII:

%PDF

那就代表這個檔案的內容其實比較符合 PDF 格式。


Magic Number 永遠在第一個 Byte?

不一定。

很多檔案格式會在檔案開頭放置可以辨識格式的資料,但不同格式的結構不完全一樣。

因此需要知道:

  • Magic Number 位於哪裡

  • 該格式的檔案結構

  • 是否可能存在其他 Header

  • 檔案是否已經損壞或被修改


小結

副檔名是檔案名稱,Magic Number 是檔案內容中的特徵。


上一篇
09|檔案真的刪除了嗎?Slack Space 與 Unallocated Space
系列文
新手的30天數位鑑識之旅10
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言