SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

ファイルの内容を16進ダンプしたい

問題

ファイルの内容を16進ダンプで見たいのですが、良い方法はありますか。

答え

方法は多数ある。

Binary Editor BZ(Windows)

専用のソフト、対応しているソフトを使う方法。

https://devil-tamachan.github.io/BZDoc/


PowerShell の format-hex コマンド(Windows)

あら、ソフトいらず。

PS C:\Users\xxxx\Pictures> format-hex sample.png


           パス: C:\Users\xxxx\Pictures\sample.png

           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000000   89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49 48 44 52  PNG........IHDR
00000010   00 00 05 31 00 00 06 3F 08 06 00 00 00 5B 11 B9  ...1...?.....[.¹
00000020   14 00 00 00 01 73 52 47 42 00 AE CE 1C E9 00 00  .....sRGB.®Î.é..
00000030   00 04 67 41 4D 41 00 00 B1 8F 0B FC 61 05 00 00  ..gAMA..±.üa...
00000040   00 09 70 48 59 73 00 00 0E C3 00 00 0E C3 01 C7  ..pHYs...Ã...Ã.Ç
00000050   6F A8 64 00 00 FF A5 49 44 41 54 78 5E EC DD 07  o¨d...¥IDATx^ìÝ.
(略)

コマンドの結果がスクロールして流れて行ってしまうので、moreコマンドに渡すと1ページずつ見える。

PS C:\> format-hex sample.png | more


コマンドプロンプトで certutil コマンド(Windows)

16進ダンプをファイルに書き出してくれる。書き出されたファイルをエディタなどで開いて確認できる。

>certutil -f -encodehex sample.png sample.txt 5

sample.png の16進ダンプが sample.txt に書き出される。

末尾の数字は形式の指定。

https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/certutil


hexdumpコマンド(Linux)

linux環境や、WSL環境なら、hexdumpコマンドで。

$ hexdump test.php
0000000 3f3c 6870 0d70 760a 7261 645f 6d75 2870
0000010 5f24 4553 5652 5245 3b29 0a0d
000001c

オプションで元の文字も表示できる。

$ hexdump -C test.php
00000000  3c 3f 70 68 70 0d 0a 76  61 72 5f 64 75 6d 70 28  |<?php..var_dump(|
00000010  24 5f 53 45 52 56 45 52  29 3b 0d 0a              |$_SERVER);..|
0000001c

表示が長いときは less などで閲覧。

$ hexdump -C test.php | less


xxdコマンド(Linux)

xxdコマンドでも可能。

$ xxd test.php
00000000: 3c3f 7068 700d 0a76 6172 5f64 756d 7028  <?php..var_dump(
00000010: 245f 5345 5256 4552 293b 0d0a            $_SERVER);..


ほかに

エディタについている変換機能を使うなど。

関連するメモ

コメント