strings
是一个强大的Linux命令行工具,用于从二进制文件中提取可打印的字符串。它在数据挖掘、逆向工程和取证分析中非常有用。
strings [选项] 文件名
选项 | 描述 |
---|---|
-a |
扫描整个文件(默认只扫描数据段) |
-n 长度 |
只显示长度≥指定值的字符串(默认4) |
-t 格式 |
显示字符串在文件中的偏移位置(d=十进制,o=八进制,x=十六进制) |
-e 编码 |
指定字符编码(s=7位,S=8位,b=16位大端,l=16位小端) |
-f |
在每个字符串前显示文件名 |
strings binary_file
strings binary_file | grep "keyword"
strings -n 10 binary_file # 只显示长度≥10的字符串
strings -t x binary_file # 显示十六进制偏移量
find /path -type f -exec strings {} \; # 递归提取所有文件中的字符串
strings binary_file | sort | uniq -c | sort -nr # 统计字符串出现频率
strings -e l utf16_file # 提取UTF-16小端编码的字符串
strings malware | grep -E "http://|https://" # 查找网络连接
strings /dev/sda1 > recovered_strings.txt # 从磁盘中恢复可读文本
strings firmware.bin | grep "version" # 查找固件版本信息
strings /proc/kcore # 从内核内存中提取字符串(需要root)
strings binary_file | grep -i "password"
strings
可能会产生大量输出,建议重定向到文件通过组合strings
与其他Linux工具如grep
、awk
和sed
,可以构建强大的数据挖掘管道,从二进制文件中提取有价值的信息。