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 可快速定位文件中的关键文本信息,是调试、取证或安全分析的利器。