1. ホーム
  2. c

[解決済み] Linuxのコマンドで16進数の情報を2進数に変換する。

2022-07-28 01:26:52

質問

私のLinuxシステムには、このバイナリファイルがあります...

 udit@udit-Dabba ~ $ cat file.enc
 Salted__s�bO��<0�F���Jw!���]�:`C�LKȆ�l

hexdumpコマンドを使うと、このようにその情報が表示されます。

 udit@udit-Dabba ~ $ hexdump -C file.enc
 00000000  53 61 6c 74 65 64 5f 5f  1b 73 a1 62 4f 15 be f6  |Salted__.s.bO...|
 00000010  3c 30 cc 46 ee 10 13 11  84 bf 4a 77 21 a4 84 99  |<0.F......Jw!...|
 00000020  0e 5d ef 11 18 3a 60 43  a0 4c 4b 1e c8 86 e6 6c  |.]...:`C.LK....l|
 00000030

今、私は他のシステム上のファイルを渡されましたが、その中身は次のようなものです。

 53 61 6c 74 65 64 5f 5f  1b 73 a1 62 4f 15 be f6
 3c 30 cc 46 ee 10 13 11  84 bf 4a 77 21 a4 84 99
 0e 5d ef 11 18 3a 60 43  a0 4c 4b 1e c8 86 e6 6c

そして、このhexdumpから同じようにバイナリ情報を見つける必要があります。

そのためにはどうすればよいのでしょうか。

Cコードでも問題なく動作します。

(ただし、Linuxのコマンドで、何らかのスイッチがあるものが望ましいです。)

制限事項です。

ファイルのバイナリ情報は、暗号化アルゴリズムの出力なので、内容が完全に一致する必要があります...

どのように解決するのですか?

user786653 さんの提案のように xxd(1) プログラムを使用します。

xxd -r -p input.txt output.bin