在 Linux 下,strings 命令可以从二进制文件、库文件、可执行程序中提取可打印字符串,常用来“碰运气”找版本号。
下面按常见场景说明用法。
strings /path/to/binary | grep -i version
示例:
strings /usr/bin/nginx | grep -i version
strings /lib/x86_64-linux-gnu/libc.so.6 | grep -i version
strings file | grep -iE 'version|v[0-9]|release|build'
示例:
strings myapp | grep -iE 'version|release|build'
strings /lib/x86_64-linux-gnu/libc.so.6 | grep -i glibc
或:
/lib/x86_64-linux-gnu/libc.so.6
strings /usr/lib/x86_64-linux-gnu/libssl.so | grep -i openssl
strings ./unknown_binary | grep -iE 'version|[0-9]+\.[0-9]+'
grep 更精准1.2.3 的版本号strings file | grep -E '[0-9]+\.[0-9]+(\.[0-9]+)?'
strings file | grep -E '20[0-9]{2}-[0-9]{2}-[0-9]{2}'
strings -n 6 file | grep -i version
-n 6 表示只显示长度 ≥ 6 的字符串。
file / objdump(补充手段)如果 strings 找不到:
file binary
objdump -s -j .rodata binary | less
✅ 优点
❌ 限制
如果你有具体某个程序或文件路径,我可以直接帮你写准确的命令。