在 Linux 中,strings 和 grep 经常结合使用,用来从二进制文件或数据文件中提取可读字符串,并筛选感兴趣的内容。
下面按常见用法一步步说明。
最直接的方式是用管道:
strings 文件名 | grep "关键字"
示例:
strings app.bin | grep "password"
含义:
strings:从 app.bin 中提取可打印字符串grep:只显示包含 password 的行strings app.bin | grep -i "error"
-i:不区分大小写(Error / ERROR / error)
strings app.bin | grep -E "https?://[a-zA-Z0-9./]+"
提取 URL 示例。
strings -n 6 app.bin | grep -n "config"
-n 6:只显示长度 ≥ 6 的字符串-n(grep):显示行号strings *.bin | grep "secret"
或分别显示文件名:
strings *.bin | grep -H "secret"
strings app.bin | grep -E "user|pass|token"
strings app.bin | grep -v "debug"
排除包含 debug 的行。
strings app.bin | grep "IP:" | awk '{print $2}'
strings binary | grep -i "password"
strings binary | grep -E "https?://"
strings binary | grep -i "version"
strings 默认最小字符串长度是 4-a 扫描整个文件(不止数据段)strings -a binary | grep "keyword"
如果你有具体场景(比如分析病毒、逆向、日志、固件),我可以给你更针对性的命令。