在 Linux 下,strings 命令用于从二进制文件或数据中提取可打印字符串。通常我们会配合 管道(pipe) 和文本处理工具来“过滤”结果。下面按常见需求给你一些实用方法。
strings file.bin | grep "error"
忽略大小写:
strings file.bin | grep -i "error"
多个关键字(或):
strings file.bin | grep -E "error|warning|fail"
strings file.bin | grep -v "debug"
排除多个:
strings file.bin | grep -Ev "debug|test"
strings 默认最小长度是 4,可自定义:
strings -n 8 file.bin
显示地址:
strings -a -t x file.bin
结合 grep:
strings -a -t x file.bin | grep "error"
路径:
strings file.bin | grep "/"
URL:
strings file.bin | grep -E "https?://"
IP:
strings file.bin | grep -E "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"
strings file.bin | sort | uniq
只看重复杂项:
strings file.bin | sort | uniq -c | sort -nr
strings file.bin > strings.txt
grep "password" strings.txt
只取第 2 列:
strings file.bin | awk '{print $2}'
替换内容:
strings file.bin | sed 's/foo/bar/g'
如果你有具体场景(比如逆向分析、日志提取、恶意样本、固件),可以告诉我,我可以给你更精确的过滤命令。