温馨提示×

linux strings和od有何区别

小樊
44
2026-09-08 11:55:23
栏目: 智能运维

在 Linux 下,stringsod 都是用来“查看文件内容”的命令行工具,但用途、视角和输出方式完全不同。下面从几个维度对比说明。


一、核心定位区别

strings

作用:从二进制或任意文件中提取“可打印的字符串”
适合:快速看里面写了什么文字(如路径、函数名、错误信息)

od(octal dump)

作用:以“八进制 / 十六进制 / 十进制 / 字符”等形式逐字节 dump 文件
适合:分析二进制结构、协议、编码、对齐、字节序


二、输出内容对比

strings

strings a.out

输出示例:

/lib64/ld-linux-x86-64.so.2
printf
Hello, world!

✅ 只显示连续的可见字符


od

od -A x -t x1z a.out

输出示例:

0000000 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00  >ELF............<
0000010 02 00 3e 00 01 00 00 00 00 10 40 00 00 00 00 00  >..>.......@.....<

✅ 显示每一个字节


三、使用场景对比

场景 用哪个
看程序里有没有硬编码密码 strings
分析 ELF / 文件头 od
查报错信息来源 strings
看网络包 / 协议格式 od
快速扫一眼内容 strings
精确字节级分析 od

四、参数风格差异

strings 常用

strings -n 6 file     # 最少 6 个字符
strings -e l file     # 16-bit little endian

od 常用

od -A d -t x1         # 十进制地址 + 十六进制
od -c file            # 字符形式
od -t x2              # 16-bit hex

五、一句话总结

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

如果你愿意,我也可以:

  • 用同一个文件对比两者输出
  • xxd / hexdump 和它们的区别
  • 结合实际逆向 / 调试场景说明

0