在 Ubuntu(或其他 Linux)里,strings 命令用于从二进制文件中提取可打印字符串。常见“过滤”需求一般有几种,下面按场景给你总结几种常用方法。
用 grep 配合 strings:
strings file | grep "keyword"
忽略大小写:
strings file | grep -i "keyword"
只显示包含多个关键词之一:
strings file | grep -E "error|warning|fail"
排除包含 ubuntu 的行:
strings file | grep -v "ubuntu"
排除多个关键词:
strings file | grep -v -E "debug|test|temp"
-n 参数可只显示长度 ≥ N 的字符串:
strings -n 8 file
结合 grep:
strings -n 6 file | grep "version"
查看某个 ELF 段(如 .rodata):
strings -e l file
或配合 objdump:
objdump -s -j .rodata file
加 -a 或 -t 显示偏移/地址:
strings -t x file
然后过滤地址范围(例如 0x1000 以后):
strings -t x file | awk '$1 > "1000"'
strings file | sort -u
strings *.bin | grep "config"
提取二进制中所有 URL:
strings file | grep -E "https?://"
提取版本信息:
strings file | grep -i "version"
如果你有具体场景(比如:分析病毒、逆向、日志、ELF、固件),可以告诉我,我给你更精确的命令。