温馨提示×

ubuntu strings和hexdump区别

小樊
41
2026-09-24 17:39:26
栏目: 智能运维

在 Ubuntu(以及其它 Linux 发行版)里,stringshexdump 都是用来“看二进制文件内容”的命令行工具,但用途和输出方式差别很大。下面从几个角度对比说明。


一、核心区别一句话总结

  • strings:从二进制文件中提取可打印的字符串(人类能读的文字)
  • hexdump:以十六进制 / 字符形式显示文件的原始字节内容

二、strings 是什么

作用

扫描二进制文件,把里面连续的可见字符打印出来。

常见用途

  • 查看程序里硬编码的字符串(路径、URL、错误信息)
  • 分析恶意软件 / 逆向工程
  • 快速了解一个未知二进制文件“大概在干什么”

示例

strings /bin/ls

输出类似:

Usage: ls [OPTION]... [FILE]...
GNU coreutils
http://www.gnu.org/

特点

✅ 输出干净、可读
❌ 看不到字节细节
❌ 不显示位置偏移(默认)


三、hexdump 是什么

作用

十六进制 + ASCII 的方式显示文件的原始字节。

常见用途

  • 精确分析文件格式
  • 查看结构体、协议、头部信息
  • 调试二进制数据

示例

hexdump -C file.bin

输出类似:

00000000  7f 45 4c 46 02 01 01 00  00 00 00 00 00 00 00 00  |.ELF............|
00000010  02 00 3e 00 01 00 00 00  78 00 40 00 00 00 00 00  |..>.....x.@.....|

特点

✅ 能看到每一个字节
✅ 能看到偏移量
❌ 不直观(一堆十六进制)


四、对比表

对比项 strings hexdump
输出内容 可打印字符串 原始字节
可读性
是否显示偏移 默认不显示 显示
是否显示不可见字符
适合分析 文本 / 线索 结构 / 格式
常用参数 -n, -a -C, -n

五、实际配合使用(很常见)

通常这样用:

# 先快速看字符串
strings binary

# 再精确定位
hexdump -C binary | less

或者:

strings -a -n 6 binary | grep pass

六、总结一句话

strings 看“说了什么”,hexdump 看“怎么存的”

如果你愿意,我也可以讲:

  • stringsxxd 的区别
  • 如何用它们逆向分析 ELF
  • 如何用 hexdump 解析文件头(如 PNG / ELF)

0