创建文件的十六进制转储


介绍

Hexdump 以十六进制、十进制、八进制或 ASCII 格式显示二进制文件内容。它是一个检查工具,也可用于编程、逆向工程和数据恢复。它以十六进制形式表示文件的内容。本文将介绍我们可以用来生成文件十六进制转储的各种工具。我们将学习如何创建文件的十六进制转储。

为了用作本文的模型,让我们生成一个 ASCII 文本文件。

$ cat >> example.txt

这是我们文件中示例文本。

我们将使用各种工具将其转换为十六进制。

使用 hexdump

Linux 带有一个内置工具,称为 hexdump,它允许您以十六进制、十进制、八进制或 ASCII 格式过滤和查看各种文件的内容。它有效地用作检查工具,并具有数据恢复功能。此外,我们可以使用它来检查各种程序的可执行代码。

hexdump 的基本语法如下:

语法

$ hexdump [options…] [files …]

示例

让我们从我们之前创建的 example.txt 文件生成一个十六进制转储:

$ hexdump example.txt

输出

默认情况下,hexdump 命令将十六进制数据输出为 16 位数字。

$ hexdump example.txt 0000000 6854 7369 6920 2073 756f 2072 6173 706d 0000010 656c 7420 7865 2074 6e69 7420 6568 6620 0000020 6c69 2e65 570a 2065 6977 6c6c 6320 6e6f 0000030 6576 7472 6920 2074 6e69 6f74 6820 7865 0000040 7520 6973 676e 7620 7261 6f69 7375 7420 0000050 6f6f 736c 0a2e 0000056 $

如果要显示十六进制数据和 ASCII 数据,可以使用带有规范标志的相同命令。相同的命令将写成:

示例

$ hexdump C example.txt

输出

$ hexdump -C example.txt 00000000 54 68 69 73 20 69 73 20 6f 75 72 20 73 61 6d 70 |This is our samp| 00000010 6c 65 20 74 65 78 74 20 69 6e 20 74 68 65 20 66 |le text in the f| 00000020 69 6c 65 2e 0a 57 65 20 77 69 6c 6c 20 63 6f 6e |ile..We will con| 00000030 76 65 72 74 20 69 74 20 69 6e 74 6f 20 68 65 78 |vert it into hex| 00000040 20 75 73 69 6e 67 20 76 61 72 69 6f 75 73 20 74 | using various t| 00000050 6f 6f 6c 73 2e 0a |ools..| 00000056 $

使用 xxd

我们可以使用 xxd 生成文件的十六进制转储。此外,它可以用于将十六进制转储返回到其原始 ASCII 或二进制格式。

语法

Xxd 具有以下语法。

$ xxd [options …] [file …]

示例

让我们运行命令:

$ xxd example.txt

输出

$ xxd example.txt
00000000: 5468 6973 2069 7320 6f75 7220 7361 6d70 This is our samp
00000010: 6c65 2074 6578 7420 696e 2074 6865 2066 le text in the f
00000020: 696c 652e 0a57 6520 7769 6c6c 2063 6f6e ile..We will con
00000030: 7665 7274 2069 7420 696e 746f 2068 6578 vert it into hex
00000040: 2075 7369 6e67 2076 6172 696f 7573 2074 using various t
00000050: 6f6f 6c73 2e0a ools..
$

使用 od

od,也称为八进制转储,是将文件转换为不同格式的内置命令。八进制格式是默认格式。

od 命令可以通过组合列出的每个文件中的数据,按列出的顺序接受多个文件作为输入。

借助此命令,我们可以将可执行文件转换为人类可读的格式,并用于调试。

众所周知,od 命令默认显示八进制格式的数据,输出将使用 -t x1 标志转换为十六进制格式:

示例

$ od -t x1 example.txt

输出

$ od -t x1 example.txt
0000000 54 68 69 73 20 69 73 20 6f 75 72 20 73 61 6d 70
0000020 6c 65 20 74 65 78 74 20 69 6e 20 74 68 65 20 66
0000040 69 6c 65 2e 0a 57 65 20 77 69 6c 6c 20 63 6f 6e
0000060 76 65 72 74 20 69 74 20 69 6e 74 6f 20 68 65 78
0000100 20 75 73 69 6e 67 20 76 61 72 69 6f 75 73 20 74
0000120 6f 6f 6c 73 2e 0a
0000126

此外,我们可以将 -t x1 标志与 -c 标志结合使用以显示每个字符的十六进制值:

示例

$ od -t x1 -c example.txt

输出

$ od -t x1 -c example.txt
0000000 54 68 69 73 20 69 73 20 6f 75 72 20 73 61 6d 70
   T h i s i s o u r s a m p
0000020 6c 65 20 74 65 78 74 20 69 6e 20 74 68 65 20 66
   l e t e x t i n t h e f
0000040 69 6c 65 2e 0a 57 65 20 77 69 6c 6c 20 63 6f 6e
   i l e . 
W e w i l l c o n
0000060 76 65 72 74 20 69 74 20 69 6e 74 6f 20 68 65 78 v e r t i t i n t o h e x 0000100 20 75 73 69 6e 67 20 76 61 72 69 6f 75 73 20 74 u s i n g v a r i o u s t 0000120 6f 6f 6c 73 2e 0a o o l s .
0000126 $

结论

本文介绍了将文件转换为十六进制格式的各种工具。在处理可执行文件和调试目的时,编辑十六进制文件尤其重要。在本教程中,我们检查了创建文件十六进制转储的各种工具。

更新于:2022 年 11 月 21 日

2K+ 次查看

开启你的 职业生涯

通过完成课程获得认证

开始
广告

© . All rights reserved.