`

我使用过的Linux命令之hexdump - ”十六“进制查看器

阅读更多

我使用过的Linux命令之hexdump - ”十六“进制查看器

本文链接:http://codingstandards.iteye.com/blog/805778   (转载请注明出处)

 

用途说明

hexdump命令一般用来查看”二进制“文件的十六进制编码,但实际上它的用途不止如此,手册页上的说法是“ascii, decimal, hexadecimal, octal dump“,这也就是本文标题为什么要将”十六“给引起来的原因,而且它能查看任何文件,而不只限于二进制文件了。另外还有xxd和od也可以做类似的事情,但是我从未用过。在程序输出二进制格式的文件时,常用hexdump来检查输出是否正确。当然也可以使用Windows上的UltraEdit32之类的工具查看文件的十六进制编码,但Linux上有现成的工具,何不拿来用呢。

常用参数

如果要看到较理想的结果,使用-C参数,显示结果分为三列(文件偏移量、字节的十六进制、ASCII字符)。

格式:hexdump -C binfile

一般文件都不是太小,最好用less来配合一下。

格式:hexdump -C binfile | less

 

使用示例

示例一 比较各种参数的输出结果

[root@new55 ~]# echo /etc/passwd | hexdump
0000000 652f 6374 702f 7361 7773 0a64         
000000c
[root@new55 ~]# echo /etc/passwd | od -x
0000000 652f 6374 702f 7361 7773 0a64
0000014
[root@new55 ~]# echo /etc/passwd | xxd
0000000: 2f65 7463 2f70 6173 7377 640a            /etc/passwd.
[root@new55 ~]# echo /etc/passwd | hexdump -C      <== 规范的十六进制和ASCII码显示(Canonical hex+ASCII display
00000000  2f 65 74 63 2f 70 61 73  73 77 64 0a              |/etc/passwd.|
0000000c
[root@new55 ~]# echo /etc/passwd | hexdump -b      <== 单字节八进制显示(One-byte octal display)
0000000 057 145 164 143 057 160 141 163 163 167 144 012               
000000c
[root@new55 ~]# echo /etc/passwd | hexdump -c      <== 单字节字符显示(One-byte character display)
0000000   /   e   t   c   /   p   a   s   s   w   d  \n               
000000c
[root@new55 ~]# echo /etc/passwd | hexdump -d      <== 双字节十进制显示(Two-byte decimal display)
0000000   25903   25460   28719   29537   30579   02660               
000000c
[root@new55 ~]# echo /etc/passwd | hexdump -o       <== 双字节八进制显示(Two-byte octal display)
0000000  062457  061564  070057  071541  073563  005144               
000000c
[root@new55 ~]# echo /etc/passwd | hexdump -x       <== 双字节十六进制显示(Two-byte hexadecimal display)
0000000    652f    6374    702f    7361    7773    0a64               
000000c
[root@new55 ~]# echo /etc/passwd | hexdump -v
0000000 652f 6374 702f 7361 7773 0a64         
000000c

 

比较来比较去,还是hexdump -C的显示效果更好些。

示例二 确认文本文件的格式

文本文件在不同操作系统上的行结束标志是不一样的,经常会碰到由此带来的问题。比如Linux的许多命令不能很好的处理DOS格式的文本文件。Windows/DOS下的文本文件是以\r\n作为行结束的,而Linux/Unix下的文本文件是以\n作为行结束的。

 

[root@new55 ~]# cat test.bc
123*321
123/321
scale=4;123/321

[root@new55 ~]# hexdump -C test.bc
00000000  31 32 33 2a 33 32 31 0a   31 32 33 2f 33 32 31 0a  |123*321.123/321.|
00000010  73 63 61 6c 65 3d 34 3b  31 32 33 2f 33 32 31 0a  |scale=4;123/321.|
00000020  0a                                                |.|
00000021
[root@new55 ~]#

 

注:常见的ASCII字符的十六进制表示

\r      0D

\n     0A

\t      09

DOS/Windows的换行符 \r\n 即十六进制表示 0D 0A

Linux/Unix的换行符      \n    即十六进制表示 0A

 

示例三 查看wav文件

有些IVR系统需要8K赫兹8比特的语音文件,可以使用hexdump看一下具体字节编码。

[root@web186 root]# ls -l tmp.wav
-rw-r--r--    1 root     root        32381 2010-04-19  tmp.wav
[root@web186 root]# file tmp.wav
tmp.wav: RIFF (little-endian) data, WAVE audio, ITU G.711 a-law, mono 8000 Hz

[root@web186 root]# hexdump -C tmp.wav | less
00000000  52 49 46 46 75 7e 00 00  57 41 56 45 66 6d 74 20  |RIFFu~..WAVEfmt |
00000000  52 49 46 46 75 7e 00 00  57 41 56 45 66 6d 74 20  |RIFFu~..WAVEfmt |
00000010  12 00 00 00 06 00 01 00  40 1f 00 00 40 1f 00 00  |........@...@...|
00000020  01 00 08 00 00 00 66 61  63 74 04 00 00 00 43 7e  |......fact....C~|
00000030  00 00 64 61 74 61 43 7e  00 00 d5 d5 d5 d5 d5 d5  |..dataC~........|
00000040  d5 d5 d5 d5 d5 d5 d5 d5  d5 d5 d5 d5 d5 d5 d5 d5  |................|
*
000000a0  d5 d5 d5 d5 d5 d5 d5 d5  d5 55 d5 55 d5 d5 55 d5  |.........U.U..U.|
000000b0  55 d5 d5 55 d5 55 d5 d5  55 d5 55 55 55 55 55 55  |U..U.U..U.UUUUUU|
000000c0  55 55 55 55 55 55 55 d5  d5 d5 d5 d5 d5 d5 d5 d5  |UUUUUUU.........|
000000d0  d5 55 55 55 55 55 55 55  55 55 55 55 55 55 55 55  |.UUUUUUUUUUUUUUU|
000000e0  55 55 55 55 55 55 55 55  55 d5 d5 d5 d5 d5 d5 d5  |UUUUUUUUU.......|
000000f0  d5 d5 d5 d5 55 55 55 55  55 55 55 55 55 55 55 55  |....UUUUUUUUUUUU|
00000100  55 55 55 55 55 55 55 55  55 55 55 55 d5 d5 d5 d5  |UUUUUUUUUUUU....|
00000110  d5 d5 d5 d5 d5 d5 55 55  55 55 55 55 55 55 55 55  |......UUUUUUUUUU|
00000120  55 55 55 55 55 55 55 55  55 55 55 55 55 55 d5 d5  |UUUUUUUUUUUUUU..|
00000130  d5 d5 d5 d5 d5 d5 d5 d5  d5 55 55 55 55 55 55 55  |.........UUUUUUU|
00000140  55 55 d5 55 55 55 55 55  55 55 55 55 55 55 55 55  |UU.UUUUUUUUUUUUU|
00000150  55 d5 d5 d5 d5 d5 d5 d5  d5 d5 d5 55 55 55 55 55  |U..........UUUUU|
00000160  55 55 55 55 55 55 55 55  55 55 55 55 55 55 55 55  |UUUUUUUUUUUUUUUU|
00000170  55 55 55 55 d5 d5 d5 d5  d5 d5 d5 d5 d5 55 d5 55  |UUUU.........U.U|
00000180  55 55 55 55 55 55 55 55  55 55 55 55 55 55 55 55  |UUUUUUUUUUUUUUUU|
00000190  55 55 55 55 55 55 55 d5  d5 d5 d5 d5 d5 d5 d5 55  |UUUUUUU........U|
000001a0  55 55 55 55 55 55 55 d5  d5 55 55 55 55 55 55 55  |UUUUUUU..UUUUUUU|
000001b0  55 55 55 55 55 55 55 d5  55 55 d5 55 55 55 55 55  |UUUUUUU.UU.UUUUU|
000001c0  55 55 d5 55 d5 d5 55 d5  55 55 55 55 55 55 55 55  |UU.U..U.UUUUUUUU|
000001d0  55 55 55 55 55 55 55 55  55 55 55 55 55 55 55 d5  |UUUUUUUUUUUUUUU.|
000001e0  55 d5 d5 d5 d5 55 55 55  55 55 55 55 55 55 55 55  |U....UUUUUUUUUUU|
000001f0  55 55 55 55 55 55 55 55  55 55 55 55 d5 55 55 d5  |UUUUUUUUUUUU.UU.|
00000200  55 55 55 55 55 55 55 55  55 d5 d5 d5 d5 d5 55 55  |UUUUUUUUU.....UU|
00000210  55 55 55 55 55 55 55 55  55 55 55 55 55 55 55 d5  |UUUUUUUUUUUUUUU.|
00000220  55 55 d5 55 d5 55 55 d5  55 d5 55 55 d5 55 d5 d5  |UU.U.UU.U.UU.U..|
00000230  d5 d5 d5 d5 d5 d5 d5 d5  d5 d5 d5 d5 d5 d5 d5 d5  |................|
*
00000ba0  d5 d5 d5 d5 d5 d5 d5 d5  d5 d5 d5 55 55 d5 55 d5  |...........UU.U.|
00000bb0  55 55 d5 55 d5 55 d5 d5  55 d5 55 55 55 55 55 55  |UU.U.U..U.UUUUUU|
00000bc0  55 55 55 55 55 55 55 55  55 d5 d5 55 55 55 55 55  |UUUUUUUUU..UUUUU|
00000bd0  55 55 55 55 55 55 55 d5  55 55 55 55 55 55 d5 55  |UUUUUUU.UUUUUU.U|
00000be0  55 55 55 55 55 55 55 55  55 55 55 d5 55 55 55 55  |UUUUUUUUUUU.UUUU|
00000bf0  55 55 55 55 55 55 55 55  d5 d5 55 55 55 55 55 d5  |UUUUUUUU..UUUUU.|
00000c00  d5 55 55 55 55 d5 d5 d5  55 55 55 55 55 d5 d5 55  |.UUUU...UUUUU..U|
:q

[root@web186 root]#

 

问题思考

相关资料

【1】kindle's blog hexdump,od,xxd

【2】杭州美创科技技术资源中心 使用hexdump 查看二进制文件

 

返回 我使用过的Linux命令系列总目录

 

0
0
分享到:
评论

相关推荐

    xxd(hexdump),16进制打印

    它在Linux和Unix-like系统中广泛使用,同时也是Vim编辑器的一部分。在调试、分析或理解二进制文件时,`xxd`能够提供清晰的16进制视图,帮助我们更好地理解数据结构。 `xxd`的基本用法是直接跟要处理的文件名一起...

    Linxu驱动开发工具-》16进制工具.rar

    在Linux驱动开发中,了解和使用十六进制工具是至关重要的。这些工具帮助开发者深入操作系统内核,查看、分析和调试内存中的数据,特别是在处理硬件设备的寄存器设置时。下面将详细介绍这类工具及其在驱动开发中的...

    hex-unix

    3. `hexedit`:这是一个图形化的十六进制编辑器,允许用户直接查看和修改文件的二进制内容。 4. `printf` 和 `echo`:这两个命令配合格式化选项,可以用来生成或打印十六进制值。例如,`printf "%x\n" 255` 会输出...

    windows版xxd

    XXD的名称来源于“Hex Dump”的缩写,其工作原理类似于Linux下的`hexdump`命令,但在Windows环境中提供了更为丰富的功能。 **在Windows上使用XXD** Windows版的XXD与在其他操作系统上的用法相似,你可以通过命令行...

    BinFile.zip_md uboot bin_uboot_uboot md

    `md` 命令是 U-Boot 提供的一种实用工具,用于进行内存或存储设备的十六进制数据显示和检查,类似于 Linux 的 `hexdump` 命令。 在 U-Boot 开发和调试过程中,`md` 命令可以帮助开发者查看内存中的数据,以理解系统...

    QT-ASM-转换器:GUI ASM到HEX以及HEX到ASM转换工具

    QT-ASM-转换器是一款基于Qt框架开发的图形用户界面(GUI)工具,它专门用于在汇编语言(ASM)代码和十六进制(HEX)格式之间进行转换。这款工具对于那些从事低级编程、嵌入式系统开发或者需要处理二进制数据的IT专业...

    28个运维经典面试题.pdf

    8. **查看二进制文件内容**:使用`hexdump`查看二进制文件的十六进制和ASCII码表示: ```bash hexdump -C XXX(文件名) ``` 9. **理解ps aux中的VSZ和RSS**:在`ps aux`输出中,`VSZ`表示虚拟内存大小,包括所有...

    28个运维经典面试题.docx

    8. **查看二进制文件内容**:`hexdump -C 文件名`可以查看二进制文件的十六进制和ASCII码表示。 9. **理解Linux进程内存状态**:`ps aux`中的`VSZ`表示虚拟内存大小,而`RSS`表示实际使用的物理内存。 10. **检查...

    yk_min6.zip

    3. **使用十六进制编辑器**:如`hexdump`或商业软件,查看二进制数据模式。 4. **搜索文件签名**:在线查找可能的文件签名数据库,确认文件类型。 5. **使用解压缩工具**:如果文件可能是压缩或加密的,可以尝试用...

    嵌入式常见面试题.

    对于二进制文件,通常无法直接阅读其内容,但可以使用`hexdump`命令以十六进制形式显示文件内容: ```bash echo /etc/passwd | hexdump -C ``` 这将把`/etc/passwd`文件的内容转换成易于阅读的十六进制格式。 #### ...

    winpe 查看文件格式

    这需要一定的文件格式知识,但可以通过`hexdump`或`xxd`等十六进制查看工具进行手动检查。 三、在大学本科计算机病毒实验中的应用 在计算机病毒实验中,了解文件格式至关重要,因为病毒往往隐藏在特定类型的文件中...

    RTD1283-BootROM-dump.rar_Unix_Linux_

    Hexdump能将二进制文件转换成十六进制格式,方便查看和分析;binwalk则用于搜索二进制文件中的特定模式,例如识别固件中的压缩数据、引导加载程序或者其他隐藏的结构;dd则用于数据的复制和转换,例如将dump文件转换...

    output_linux下文件剪裁程序_

    在Linux环境中,有许多开源工具可以辅助完成这些任务,例如dd命令用于数据复制,objcopy用于处理二进制对象文件,以及hexdump用于查看文件的十六进制表示。此外,高级工具如make和automake可以帮助自动化构建流程。 ...

    elf_parse解析工具

    `elf_parse.exe`和`hexdump.exe`则是Windows环境下的工具,`elf_parse.exe`可能是ELF解析工具的Windows版本,而`hexdump.exe`则是一个十六进制转储工具,可以将文件内容以十六进制形式显示,对于分析二进制数据很...

    路由器固件查看工具

    4. 进一步分析:通过binwalk提取出的文件,我们可以进一步使用其他工具(如hexdump、strings等)进行分析,寻找可能的漏洞、后门或隐藏信息。 四、binwalk应用示例 1. 固件逆向工程:binwalk可以帮助逆向工程师...

    使用抓包软件抓取同一台电脑内进程之间的数据抓取

    3. **十六进制视图**:如果需要查看原始数据,可以切换到“Hex dump”视图,以十六进制格式显示数据包内容。 **四、应用实例** 1. **故障排查**:当应用程序出现通信问题时,可以用Wireshark抓取数据包,查看是否...

    Ethereal抓包软件及使用手册

    "Summary"视图提供简洁的协议层信息,"Details"视图则显示更详尽的数据,而"Hex Dump"视图则以十六进制形式展示原始数据。此外,"Follow TCP Stream"功能可以跟踪特定TCP连接的所有交互,这对于查看HTTP会话或电子...

    dumpbin-txt

    虽然`dumpbin`本身不提供数据提取功能,但结合其他工具如`hexdump`或`xxd`,可以方便地将二进制数据转换为文本格式,从而进行进一步分析。例如,将`dumpbin`的输出与文本编辑器或脚本语言结合,可以实现自定义的数据...

Global site tag (gtag.js) - Google Analytics