温馨提示×

ubuntu strings支持哪些格式

小樊
45
2026-09-03 09:44:55
栏目: 智能运维

在 Ubuntu(以及一般的 Linux)中,strings 命令来自 binutils,主要用于从文件中提取可打印字符序列。关于它“支持哪些格式”,可以从两个层面理解:


一、strings 能处理哪些“文件格式”

本质上:strings 不依赖特定文件格式,它是按字节扫描的。

✅ 支持几乎所有文件类型,例如:

  • ELF(可执行文件、.so、.o)
  • PE(Windows exe,也能扫)
  • Mach-O(macOS 程序)
  • 静态库 / 动态库
  • 核心转储(core dump)
  • 文本文件
  • 压缩包(如 zip、tar,只是字符串是乱的)
  • 图片、音频、视频(能扫出元数据)
  • 任意二进制文件

⚠️ 注意:

  • 它不会解析文件结构
  • 只是找“连续的可见字符”

二、strings 支持的“字符编码 / 数据格式”

1. 字符编码(常用)

strings file

默认支持:

  • ASCII
  • 部分 UTF-8(取决于版本)
  • 单字节编码(Latin-1 等)

指定编码(重要)

strings -e {s,S,b,l,B,L}
参数 含义
s 7-bit ASCII(默认)
S 8-bit ASCII
b 16-bit BE
l 16-bit LE
B 32-bit BE
L 32-bit LE

例如 UTF-16:

strings -e l file.exe

2. 最小字符串长度

strings -n 6 file

默认是 4


三、与“格式”相关的常用选项

strings -a file        # 扫描整个文件(不止数据段)
strings -t x file      # 显示偏移(十六进制)
strings -f file        # 显示文件名

四、常见误解

❌ strings 不能:

  • 解析 JSON / XML / ELF 结构
  • 自动识别编码
  • 解压或解密

✅ 它只是:

“把文件里像字符串的东西打印出来”


五、典型使用场景

# 查看程序里的硬编码路径
strings /bin/ls

# 分析未知二进制
strings -a -n 5 unknown.bin

# 提取 Windows 程序中的字符串
strings -e l win.exe

如果你是想问:

  • 某种具体格式(如 PNG / ELF / APK)是否支持
  • 或 如何提取某种编码的字符串

可以告诉我具体场景。

0 踩