マジックバイト破損

マジックバイトが壊れたファイルのサンプル

ファイル先頭の署名(マジックバイト)をわざと壊したPNG・PDF・ZIPのサンプルを無料ダウンロード。拡張子は正しいのに中身の署名が壊れている状態で、シグネチャ検証が正しく弾けるかを試せます。

PNGシグネチャが壊れた.png壊れています

先頭バイト 89 が 00 に。正しくは 89 50 4E 47 0D 0A 1A 0A。

broken-signature.png / 3,072 バイト
ダウンロード ↓MD5 64637e0d6f2a7b01a481dd3adf361e98
PDFシグネチャが壊れた.pdf壊れています

先頭 %PDF が %XDF に。ビューアが PDF と認識できない。

broken-signature.pdf / 2,048 バイト
ダウンロード ↓MD5 320973ad0daf96cd0921aa2001875603
ZIPシグネチャが壊れた.zip壊れています

先頭 50 4B 03 04(PK␃␄)が 50 4B 00 00 に。

broken-signature.zip / 600 バイト
ダウンロード ↓MD5 e85a6cd6c8d87751e3b1f01344bc6a38

署名を壊すと何が起きるか

ファイルの先頭数バイトは、その形式を示すマジックバイト(署名)です。PNG なら 89 50 4E 47 … で始まります。この署名を壊すと、拡張子が .png のままでもデコーダは「PNG ではない」と判断します。 厳格なバリデータは拡張子ではなくこの署名で形式を判定するため、署名破損ファイルはそこで弾かれるはずです。

確認方法: xxd broken-signature.png | head で先頭を見ると、 正常な 89 50 4E 47 ではなく 00 50 4E 47 になっています。

形式正しい先頭バイトASCII
PNG89 50 4E 47 0D 0A 1A 0A‰PNG␍␊␚␊
JPEGFF D8 FF(なし)
GIF47 49 46 38 39 61GIF89a
PDF25 50 44 46 2D%PDF-
ZIP50 4B 03 04PK␃␄
WebP52 49 46 46 … 57 45 42 50RIFF…WEBP

よくある質問

マジックバイト(ファイルシグネチャ)とは何ですか?

ファイル先頭の数バイトで形式を示す署名です。PNGは 89 50 4E 47 0D 0A 1A 0A、PDFは %PDF-、ZIPは PK(50 4B 03 04)で始まります。拡張子ではなくこの署名で形式を判定するのが安全です。

署名が壊れたファイルは無料で使えますか?

はい、会員登録なしで無料でダウンロードできます。先頭バイトだけを壊してあり、拡張子は正しいままなので、シグネチャ検証の抜けを見つけるのに使えます。