代表的なファイル識別子を記載する(今後も追加していく予定)
実行ファイル
・Windows 実行ファイル(PE ファイル、exe ファイル)0x4d 0x5a で始まるファイル、文字列としては MZ 。
オフィスファイル
・DOC/XLS/PPT ファイル、いわゆるマイクロソフトオフィスOLE2 と呼ばれるフォーマットで記述されており、先頭 16Byte が "d0 cf 11 e0 a1 b1 1a e1" であるかどうかで OLE2 ファイルであるかどうかを判別する。
オフィス関連のファイルだと分かった後の判別方法は若干手間なので、直接オフィスファイルで開いて調べるのが早い。
・PDF ファイル
0x25 0x50 0x44 0x46 となり、%PDF の後にバージョンが記載されている。
圧縮ファイル
・zip ファイル0x50 0x4b で始まるファイル、文字列としては PK となる。
なお、Microsoft office の pptx や xlsx などは zip ファイルのため先頭バイトは zip と同様に 0x50 0x4b となる。
・gzip ファイル
先頭から2バイトが 0x1F 0x8B であるファイルはgzip圧縮ファイル
暗号・難読ファイル
・Base64アルファベット、数字、+と/と=が基本。
ただし、拡張版もあるので異なる場合もある。
・Windows Script Encoder
Windows で使われる難読化
ファイルの中身が #@~^ で始まっている。
・GnuPG を使っての暗号ファイル
先頭ビットが、0x84 or 0x85 or 0x86 の場合は公開鍵暗号で暗号化されたファイルの可能性が高い
先頭ビットが、0x8C or 0x8D or 0x8E の場合は共通鍵暗号方式で暗号化されている可能性が高い
・openssl の共通鍵暗号方式を使ったファイル
Salted__ から始まる
画像ファイル
・PNGファイルマジックナンバーは 89 50 4E 47 0D 0A 1A 0A (制御文字で表すと HTJ "PNG" CR LF SUB LF)。ファイルヘッダの後には IHDR が必ず来るので、その次の 8 バイトも 00 00 00 0D 49 48 44 52 で固定されている。
・JPEG
マジックナンバーは FF D8。ファイルの終了は FF D9。