hexdump 与 xxd 格式的区别

tan*_*non 9 linux conversion xxd hexdump

我正在寻找如何进行反向十六进制转储并发现提到了 xxd。但是,它似乎不能简单地使用:

xxd -r hexdumpfile > binaryfile
Run Code Online (Sandbox Code Playgroud)

然后我比较了xxd infile和 的输出之间的差异hexdump infile,发现了三个差异:

  1. xxd 输出地址后有一个冒号
  2. xxd 输出在数据中的位置颠倒了(例如,5a42在 hexdump 输出中变成425a在 xxd 输出中)
  3. 每行后面有一些额外的字符

我在服务器上只有某些文件的 hexdumped 版本。如何使用 xxd 正确取回二进制数据?

Tim*_*Tim 8

据我所知,没有一个命令可以进行转换,但它可以很容易地分解为几个步骤:

  1. hexdump使用从输出中剥离地址sed
  2. 转换成二进制使用 xxd
  3. Endian 转换(例如,5a42变成425a)使用dd

这是完整的命令:

sed 's/^[0-9]*//' hexdump | xxd -r -p | dd conv=swab of=binaryfile
Run Code Online (Sandbox Code Playgroud)