【发布时间】:2020-01-17 14:23:56
【问题描述】:
我有一些十六进制,我想重新创建文件。我不知道文件格式是什么。它以“6554 6c6c 6d20”开头,依此类推。不幸的是,我无法给你十六进制,所以如果你能给我一些关于从这里开始的想法,我将不胜感激。
当我将每个值从十六进制转换为 ASCII 时,它显然是垃圾..
提前致谢。
R.
【问题讨论】:
我有一些十六进制,我想重新创建文件。我不知道文件格式是什么。它以“6554 6c6c 6d20”开头,依此类推。不幸的是,我无法给你十六进制,所以如果你能给我一些关于从这里开始的想法,我将不胜感激。
当我将每个值从十六进制转换为 ASCII 时,它显然是垃圾..
提前致谢。
R.
【问题讨论】:
您正在描述magic number,它是出现在文件开头的一系列字节,用于唯一标识它。 Gary Kessler 维护这些文件签名的curated list。在 *nix 系统上,您可以使用 file 来识别文件。
让我们通过回显到 xxd 来获取一些示例十六进制。
bash-5.0$ hexstring=$(printf 'Hello World!' | xxd -g 2 | cut -c11-49)
bash-5.0$ echo $hexstring
4865 6c6c 6f20 576f 726c 6421
要转换回来,请使用xxd -p -r:
bash-5.0$ echo $hexstring | xxd -p -r
Hello World!
在这里,-p 打印结果,-r 与 xxd 通常的操作相反。
【讨论】: