hexダンプでファイルのバイトを調べる
本当にPNG?文字コードはどこで変わる?ファイル名では分からない質問にhexダンプが答えます。
このガイドで使う道具
やりたいこと
拡張子の嘘はよくある話です。実はUTF-16の「ログ」、PKで始まる「jpg」(実体はZIP)、オフセット0の1バイト(BOM)のせいで読めない設定ファイル。hexビューアは実際の中身を見せます。
ダンプの読み方
ファイルをドロップします。各行にオフセット・16バイトのhex・印字可能バイトが文字として見えるASCII欄が出ます。hexバイト列(例: 50 4b)やASCIIで検索してシグネチャや文字列へジャンプできます。
- オフセット0がPK→ZIP系フォーマット(docx・xlsx・jarも)。
- FF D8 FF→JPEG、89 50 4E 47→PNG、EF BB BF→UTF-8 BOM。
- 1バイトおきに0→壊れたASCIIではなくUTF-16テキスト。
具体例
開けない.docxがあります。先頭2バイトは50 4B——PKでZIP系なので正常です。しかしmimetypeの検索はオフセット30にヒットせず、ダンプは14KBで終わっています。転送途中で切れていて、修復ツールでも無い末尾は作れません。
対応範囲
読み取り専用でローカル処理です。変更もアップロードもしません。16MiBまで、1行16バイト。ASCII欄は印字可能バイトのみで、マルチバイト文字の間はドットになります。