PNGシグネチャが壊れた.png壊れています
先頭バイト 89 が 00 に。正しくは 89 50 4E 47 0D 0A 1A 0A。
broken-signature.png / 3,072 バイト
ダウンロード ↓MD5 64637e0d6f2a7b01a481dd3adf361e98PDFシグネチャが壊れた.pdf壊れています
先頭 %PDF が %XDF に。ビューアが PDF と認識できない。
broken-signature.pdf / 2,048 バイト
ダウンロード ↓MD5 320973ad0daf96cd0921aa2001875603ZIPシグネチャが壊れた.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 |
|---|
| PNG | 89 50 4E 47 0D 0A 1A 0A | ‰PNG␍␊␚␊ |
| JPEG | FF D8 FF | (なし) |
| GIF | 47 49 46 38 39 61 | GIF89a |
| PDF | 25 50 44 46 2D | %PDF- |
| ZIP | 50 4B 03 04 | PK␃␄ |
| WebP | 52 49 46 46 … 57 45 42 50 | RIFF…WEBP |
よくある質問
マジックバイト(ファイルシグネチャ)とは何ですか?
ファイル先頭の数バイトで形式を示す署名です。PNGは 89 50 4E 47 0D 0A 1A 0A、PDFは %PDF-、ZIPは PK(50 4B 03 04)で始まります。拡張子ではなくこの署名で形式を判定するのが安全です。
署名が壊れたファイルは無料で使えますか?
はい、会員登録なしで無料でダウンロードできます。先頭バイトだけを壊してあり、拡張子は正しいままなので、シグネチャ検証の抜けを見つけるのに使えます。