strings
命令是Linux中用于从二进制文件中提取可打印字符序列(文本信息)的实用工具。它可以扫描文件并查找至少4个(默认)连续可打印字符的ASCII或Unicode字符串。
strings 文件名
这会输出文件中所有长度≥4的可打印字符序列。
设置最小字符串长度:
strings -n 长度 文件名
例如,查找至少8个字符的字符串:
strings -n 8 /bin/ls
指定编码:
strings -e 编码 文件名
支持的编码:
s
- 7位ASCII(默认)S
- 8位ASCIIb
- 16位大端序Unicodel
- 16位小端序UnicodeB
- 32位大端序UnicodeL
- 32位小端序Unicode输出字符串位置:
strings -t 格式 文件名
格式可以是:
d
- 十进制偏移量o
- 八进制偏移量x
- 十六进制偏移量仅扫描数据段:
strings -d 文件名
只扫描文件的初始化数据段和加载段。
输出到文件:
strings 文件名 > 输出文件.txt
分析可执行文件:
strings /usr/bin/ssh
查找特定字符串(结合grep):
strings /bin/ls | grep "GNU"
分析核心转储文件:
strings core.1234
分析网络数据包:
strings packet.pcap
strings
会扫描整个文件,包括可能不包含可执行代码的部分strings
可能无法提取有意义的信息strings
命令在逆向工程、调试和安全分析中非常有用,可以快速查看二进制文件中嵌入的文本信息。