ファイル署名の判定(magic bytes)
Web処理はすべてブラウザ内で完結します。データは送信されません
ファイルの先頭数バイトを貼り付けて、実際の形式を判定します。拡張子より信頼できる方法です。拡張子はファイル名の一部で誰でも変えられますが、ヘッダーは中身の一部だからです。開けない photo.jpg の理由や、正体不明のバイナリデータの中身を知る手がかりになります。画像・文書・圧縮・音声・動画・実行ファイル・フォントにわたる 59 種類の形式を収録しています。1 つの署名が複数の形式に当てはまる場合は、勝手に 1 つを選ばず、すべてを列挙します(ZIP コンテナは docx かもしれず、apk や jar かもしれません)。逆引きも可能で、png や image/png を入力すると署名とオフセットを表示します。
機能
- 59 種類の形式を収録:画像・文書・圧縮・音声・動画・実行ファイル・フォント
- ファイル名ではなくバイト列で判定。拡張子は変えられても、ヘッダーは変えられません
- 1 つの署名が複数に一致する場合はすべて列挙し、一致の具体度で並べます
- オフセット付きの署名にも対応:ISO 9660 は 32 KB 地点、MP4 の ftyp はオフセット 4
- 逆引き:png、PNG、image/png を入力すると署名とオフセットを表示
- ASCII 表示も同時に出すため、テキスト形式のヘッダー(%PDF、{\rtf、<?xml)は一目で分かります
- 16 進入力は空白・コロン・カンマ区切りと 0x / \x 接頭辞に対応
使い方
- ファイルの先頭バイトを貼り付けます(16 進でもテキストでも可)
- 判定結果がその場で表示されます。候補が複数のこともあります
- ある形式の署名を見たい場合は、拡張子か MIME を入力します
- 必要に応じて「入力の種類」を切り替え、バイト列か形式名かを明示します
よくある質問
- ZIP が複数の形式に一致するのはなぜですか?
- docx・xlsx・pptx・apk・jar・epub はファイルレベルではすべて ZIP コンテナであり、違いは中にどのエントリが入っているかで、先頭数バイトからは判別できないためです。本ツールは ZIP とそれらの可能性を併記します。「これは ZIP コンテナである」ということ自体が有用な情報だからです。
- ヘッダーと拡張子、どちらが信頼できますか?
- ヘッダーです。拡張子はファイル名の一部で、1 文字変えれば exe を jpg に見せかけられます(フィッシングで最もよく使われる手口の 1 つです)。ヘッダーは中身の一部なので、偽装するには中身ごと作る必要があります。ただし絶対でもありません。汎用的なコンテナもあるため(前の質問参照)、考えられる候補をすべて列挙します。
- 先頭 256 バイトしか表示しないのはなぜですか?
- 署名は最初の数十バイトにあり、一方でファイル全体を貼り付けることもあるためです。全部表示するとページが目に見えて重くなります。判定自体は入力全体を使います(ISO 9660 の署名は 32 KB の位置にあります)。切り詰めは表示だけに影響します。
- 形式が分かったあと変換もできますか?
- このツールは判定だけを行います。画像なら画像 Base64 変換や QR コードのツール、テキストならエンコード系のツールをご利用ください。判定は最初の一歩で、何であるかが分かって初めて次に使うツールが決まります。
関連ツール
トレント → Magnet
Web.torrent をドロップすると、info 辞書の生バイトから infohash を抽出し、magnet リンクを生成。サイズやトラッカーも併記。ファイルは送信しません。
MIME タイプ
Web拡張子から MIME タイプを、MIME タイプから既定の拡張子を検索。js なら text/javascript、image/svg+xml なら .svg が返ります。すべてブラウザ内で処理します。
Hex 変換
エンコード16 進数とテキストを相互変換します。0x・\x・空白・コロンなどの表記に対応し、日本語は UTF-8 でバイト単位に正しく復元、バイト数も表示します。
Base64 変換
エンコードテキストを Base64 に変換し、Base64 からテキストへ戻します。日本語や中国語、emoji も UTF-8 として正しく処理。すべてブラウザ内で完結し、内容は送信しません。
URL 解析
WebURL を解析し、スキーム・ホスト・ポート・パス・クエリパラメータ・アンカーに分解します。パラメータは元の値とデコード値を並記。すべてブラウザ内で処理します。
UA 解析
WebUser-Agent を解析し、ブラウザ・バージョン・OS・デバイス種別・エンジンを判定します。判定はパターン照合による概算です。すべてブラウザ内で処理します。