strings 是 Linux 下一个非常实用的命令行工具,它的核心作用是:从一个二进制文件(或任意文件)中提取出“可打印的字符串”。虽然功能看起来简单,但在很多实际场景中非常有价值。
下面从几个角度解释为什么它很有用:
二进制文件(如可执行程序、.so 库、固件、镜像)本身不可读,但里面经常会包含:
例如:
strings /bin/ls
你能直接看到 ls 用到的提示信息、选项说明,甚至内部字符串。
在安全领域,strings 几乎是第一步:
示例:
strings suspicious.bin | grep -i "http"
程序崩了但没日志?
strings 可以帮你:
对路由器、IoT 设备固件:
strings firmware.bin
经常能看到:
有时候你拿到一个不明文件:
strings unknown_file | head
可能立刻发现是:
strings file | grep -i password
strings file | less
strings -n 8 file # 只显示长度 ≥8 的字符串
strings是“用最低成本窥探未知文件内部信息”的利器。
如果你愿意,我也可以给你举一个真实 CTF / 安全分析中的 strings 使用案例。