在 Linux 下,strings 命令用于从二进制文件或数据中抽取可打印字符串。通常我们会把它的输出通过 管道(pipe) 配合其他命令进行过滤。下面按常见需求给你一些实用方法。
grep 过滤关键字最常见的用法,只保留包含某关键字的字符串。
strings file.bin | grep "main"
忽略大小写:
strings file.bin | grep -i "error"
多个关键字(或关系):
strings file.bin | grep -E "error|warning|fail"
grep -v 排除内容过滤掉不想要的字符串:
strings file.bin | grep -v "debug"
只显示长度 ≥ 6 的字符串(strings 默认最小长度是 4):
strings -n 6 file.bin
或过滤输出:
strings file.bin | awk 'length($0) >= 8'
结合 strings 的偏移参数:
strings -t x file.bin | grep "^1a0"
或只显示前 N 个:
strings file.bin | head -n 20
sed 做复杂处理例如删除空行或替换内容:
strings file.bin | sed '/^$/d'
strings file.bin | sort | uniq
只显示重复字符串:
strings file.bin | sort | uniq -d
提取长度 ≥ 5 且包含 “http” 的字符串:
strings -n 5 file.bin | grep "http"
提取并保存到文件:
strings file.bin | grep -i "password" > result.txt
如果你有 具体场景(比如分析恶意样本、提取 URL、逆向工程、日志分析),可以告诉我,我可以给你更精确的过滤命令。