strings 是 Linux 下一个常用命令,用来从二进制或非文本文件中提取可打印的字符串。关于它“支持哪些文件格式”,可以从两个层面理解:
strings 本身不关心文件格式,它做的是:
✅ 因此,理论上支持所有文件格式,包括:
部分 strings 实现(如 GNU strings)可以识别常见对象文件格式,并进行更合理的提取:
使用 strings 时,它可识别以下格式(通过 objdump/BFD 支持):
可通过选项控制:
strings -a file # 扫描整个文件(不依赖格式)
strings file # 仅扫描已识别的数据段
| 文件类型 | 是否可用 strings |
|---|---|
| 可执行文件 | ✅ |
| 动态库 | ✅ |
| 文本文件 | ✅(但没必要) |
| 图片(jpg/png) | ✅(可能提取到元数据) |
| 视频文件 | ✅ |
| 加密文件 | ❌(无明文字符串) |
| 压缩包 | ✅(部分明文) |
strings -e S file
-n 控制最小长度:strings -n 6 file
strings 不限制文件格式,任何文件都能用;它只是“扫字符”,不是“解析格式”。
如果你有具体文件类型(比如 APK、PDF、Docker 镜像),我可以告诉你更实用的用法。