strings
命令是 Linux 中一个简单但强大的工具,用于提取文件中的可打印字符序列(默认长度≥4的 ASCII 或 Unicode 字符串)。以下是它最实用的场景及示例说明:
bash
strings /bin/ls | grep "usage" # 查找ls命令中的帮助文本
strings malware.exe | grep "http" # 分析恶意软件中的可疑URL
bash
strings core.dump | grep "error" # 从核心转储中提取错误信息
bash
strings corrupted_document.docx > recovered_text.txt
strings /dev/sda1 | grep "password" # 从磁盘分区中搜索明文密码(需权限)
bash
strings firmware.bin | grep "version"
file
命令无法识别文件类型时,通过字符串猜测文件用途。bash
strings unknown_file | head -n 20 # 查看文件开头的可读内容
bash
strings -n 8 /usr/bin/app | grep -E "key|token|secret" # 搜索长敏感字符串
.pcap
)中提取明文通信内容。bash
strings packet.pcap | grep "GET /" # 查找HTTP请求
参数 | 作用 |
---|---|
-n <长度> |
设置最小字符串长度(默认4) |
-a |
扫描整个文件(包括非文本段) |
-t <格式> |
显示字符串偏移量(-t x 为十六进制) |
-e <编码> |
指定编码(如 l 为16位小端Unicode) |
-e l
或 -e b
。grep
过滤。通过灵活组合 strings
与其他工具(如 grep
、hexdump
),可以高效完成多种文本提取任务。