在 Ubuntu(以及一般的 Linux)中,strings 命令来自 binutils,主要用于从文件中提取可打印字符序列。关于它“支持哪些格式”,可以从两个层面理解:
strings 能处理哪些“文件格式”本质上:strings 不依赖特定文件格式,它是按字节扫描的。
✅ 支持几乎所有文件类型,例如:
.so、.o)⚠️ 注意:
strings 支持的“字符编码 / 数据格式”strings file
默认支持:
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
strings -n 6 file
默认是 4
strings -a file # 扫描整个文件(不止数据段)
strings -t x file # 显示偏移(十六进制)
strings -f file # 显示文件名
❌ strings 不能:
✅ 它只是:
“把文件里像字符串的东西打印出来”
# 查看程序里的硬编码路径
strings /bin/ls
# 分析未知二进制
strings -a -n 5 unknown.bin
# 提取 Windows 程序中的字符串
strings -e l win.exe
如果你是想问:
可以告诉我具体场景。