先頭バイトからファイル種別を確認

ファイルを選ぶと、ページは先頭 64 KB を読み取り、先頭バイトをシグネチャ表(PNG、JPEG、HEIC、PDF、ZIP、TAR、WOFF2、OTF、MP3、WAV、MP4、MOV、WASM ほか)と照合します。一致しない場合は、内容をテキスト(JSON、XML、CSV、YAML、Markdown)かバイナリーデータとして分類します。レポートは検出された型と推奨拡張子を、ブラウザーが宣言した型とファイル名の拡張子と並べて表示し、確信度(シグネチャは「高」、テキスト構造は「中」、空ファイルや未知のバイナリーデータは「低」)を示します。検出は手がかりであり、有効性や安全性の証明ではありません。

ブラウザ内でローカルに実行
ローカル処理 ·
PNG · JPEG · HEIC · PDF · ZIP · TAR · WOFF2 · OTF · MP3 · WAV · MP4 · MOV · WASM · JSON · CSV · YAML

シグネチャ検出は手がかりであり、アンチウイルスの判定ではありません。

シグネチャでファイルを識別する方法

ローカルファイルを選ぶと、ページは先頭 64 KB を読み取り、先頭バイトをシグネチャ表(PNG、JPEG、HEIC、PDF、ZIP、TAR、WOFF2、OTF、MP3、WAV、MP4、MOV、WASM ほか)と照合します。どのシグネチャにも一致しない場合は、内容をテキスト(JSON、XML/HTML/SVG、CSV/TSV、YAML、Markdown、プレーンテキスト)かバイナリーデータとして分類します。アップロードは行わず、レポート、24 バイトの HEX プレビュー、8 バイトの署名はページ内に留まります。

レポートには検出された型と推奨拡張子が、ブラウザーが宣言した型とファイル名の拡張子と並んで表示され、確信度も付きます。シグネチャが一致した場合は「高」、テキスト構造だけで判定した場合は「中」、空ファイルや判別できないバイナリーデータは「低」です。

  1. ファイルを領域にドロップするかクリックして選択します。実行ボタンはありません。
  2. レポート(検出された型、推奨拡張子、ブラウザーが宣言した型、ファイル名の拡張子)を確認します。
  3. 確信度、署名メトリクス(先頭 8 バイト)、HEX プレビュー(先頭 24 バイト)を確認します。
  4. 所見(拡張子の一致・不一致、拡張子なし、空ファイル、64 KB での打ち切り、部分的な JSON、バイナリーデータ、UTF-16/32 のバイト順マーク)を読みます。
  5. 「クリア」で入力・プレビュー・メトリクス・所見を空にします。その後、同じファイルをもう一度選択できます。

照合するシグネチャ、テキスト判定の仕組み、レポートの見方

照合するシグネチャ

画像(PNG、JPEG、GIF、BMP、両バイト順の TIFF、ICO、WEBP、および HEIC/HEIF/AVIF のブランド)、文書(PDF、PostScript、RTF、SQLite)、圧縮(空アーカイブ PK 05 06 を含む ZIP、GZIP、RAR、7z、オフセット 257 の TAR)、実行ファイルとオブジェクト(ELF、Windows MZ、Java クラス、WASM)、フォント(WOFF、WOFF2、TTF、OTF、TTC)、音声(ID3 タグまたはフレーム同期による MP3、RIFF 経由の WAV/AVI/WEBP、OGG、FLAC、AIFF、MIDI)、動画(MP4、QuickTime「qt 」、M4V、3GP、3G2、WebM)を照合します。

ISO ベースメディアファイルでは「ftyp」の 4 バイト後のブランドが HEIC、HEIF、AVIF、QuickTime、M4A、3GP を切り分けます。未知のブランドは video/mp4 として報告します。ID3 タグのない MP3 はフレーム同期ビットで判定し、ビットレート指数 0/15 とサンプリング指数 3 を除外することで、ランダムなデータが誤って一致しないようにしています。

シグネチャが一致しない場合の判定

テキスト判定:JSON.parse に成功すれば application/json(途中で切れた JSON には部分 JSON の注記が付きます)、最初のタグで XML・HTML・SVG を判定し、引用符を考慮した区切り文字の走査で CSV・TSV を判定し、YAML は構造的な値を持つ 2 行以上のマッピング行を要求し、Markdown の記法を認識し、それ以外はプレーンテキストとします。NUL バイト、制御バイトを含む不正な UTF-8 列、または制御バイトが 30 % を超える場合は application/octet-stream(確信度「低」)とします。

UTF-16LE/BE や UTF-32 のバイト順マークはテキストとして読み取ります。この確認がないと、先頭の FF FE が MP3 のフレーム同期に見えてしまうためです。読み取るのは先頭 64 KB のみなので、それより大きいファイルには打ち切りの注記が付き、JSON で始まる場合は誤った型ではなく部分 JSON の注記が付きます。

レポートと拡張子の照合、プライバシー

拡張子は既知の等価関係(jpg/jpeg、tif/tiff、htm/html、yml/yaml、md/markdown、csv/tsv、heic/heif、m4a/m4b、3gp/3g2、aif/aiff、mov/qt)を通して検出された型と比較します。テキストファイル(txt/text/log/md/markdown/rst/adoc)は txt または md を受け付けます。拡張子のないファイル(ドットで始まるファイルを含む)は不一致ではなく「比較できる拡張子がありません」と報告します。名前より内容を優先するため、JPEG のバイトを持つ .png は image/jpeg として不一致の警告付きで報告されます。

確信度は、シグネチャが一致すれば「高」、テキスト構造だけで判定すれば「中」、空ファイルや未知のバイナリーデータは「低」です。検出は手がかりであり、ウイルス対策ソフトの判定ではありません。すべてページ内で実行され、アップロードは行わず、オフラインでも動作します。

最近使ったツール: