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
可高效辅助二进制文件分析和取证。