strings 是 Linux 中用于提取文件中可打印字符序列(如 ASCII 或 Unicode 字符串)的实用工具,常用于分析二进制文件(如可执行文件、库文件或内存转储)。以下是其核心参数及作用详解:
-a / --all
strings -a /bin/ls(提取所有段的字符串)-f / --print-file-name
strings -f *.so(批量分析动态库文件)-t <format> / --radix=<format>
-t d:十进制偏移-t x:十六进制偏移-t o:八进制偏移strings -t x /bin/bash(显示十六进制偏移)-n <length> / --bytes=<length>
length 的字符串(默认 4 字符)。strings -n 10 program(提取至少 10 字符的字符串)-o
-t o(显示八进制偏移,旧版兼容参数)。-e <encoding> / --encoding=<encoding>
l:16 位小端(如 UTF-16LE)b:16 位大端(如 UTF-16BE)s:单字节字符(默认,如 ASCII)strings -e l binary.exe(解析 UTF-16LE 编码)-d / --data
-a 相对)。-w / --include-all-whitespace
-h / --help
-v / --version
bash
strings -t x malware | grep "password"bash
strings core.dump | grep "error"bash
strings -f /usr/bin/* > all_strings.txt-e 参数(如处理 Windows PE 文件需 -e l)。grep 过滤关键内容。通过灵活组合参数,strings 可高效辅助二进制文件分析和取证。