strings
是 Linux 中用于提取文件中可打印字符序列的实用工具,常用于分析二进制文件(如可执行文件、库文件或数据文件)。以下是其主要参数及作用详解:
-a
/ --all
-d
/ --data
.data
、.rodata
),忽略其他段,提高针对性。-f
/ --print-file-name
-n <长度>
/ --bytes=<长度>
-n 8
只输出长度 ≥8 的可打印序列。-t <格式>
/ --radix=<格式>
-t o
:八进制(Octal)-t x
:十六进制(Hex)-t d
:十进制(Decimal)-e <编码>
/ --encoding=<编码>
l
:16 位小端(如 UTF-16LE)b
:16 位大端(如 UTF-16BE)B
:32 位大端-o
-t o
,以八进制显示偏移量(旧版兼容参数)。--help
-v
/ --version
逆向工程分析
strings -t x -n 8 /bin/ls # 提取长度≥8的字符串,显示十六进制偏移量
用于查找二进制文件中的硬编码路径、密钥或敏感信息。
多文件批量处理
strings -f *.so # 分析当前目录所有.so库文件,并标注文件名
指定编码提取
strings -e l suspicious.bin # 扫描UTF-16小端编码的字符串
结合管道进一步处理
strings /tmp/dump | grep "http://" # 提取所有URL链接
-e
)需根据文件的实际编码选择,否则可能输出乱码。-a
可能耗时较长,建议搭配 -n
过滤短字符串。sudo
。通过灵活组合参数,strings
可快速定位文件中的关键文本信息,是调试、取证或安全分析的利器。