温馨提示×

如何用linux strings查版本号

小樊
33
2026-10-11 08:36:56
栏目: 智能运维

在 Linux 下,strings 命令可以从二进制文件、库文件、可执行程序中提取可见字符串,常用来“碰运气”找版本号。

下面按常见场景说明。


一、基本用法

strings /path/to/binary | grep -i version

示例:

strings /usr/bin/nginx | grep -i version

常见关键词:

  • version
  • VERSION
  • v1.2.3
  • release
  • build

二、查常见程序版本

1. 可执行文件

strings /usr/bin/curl | grep -i version

2. 动态库(.so)

strings /lib/x86_64-linux-gnu/libssl.so | grep -i version

3. 内核模块

strings mydriver.ko | grep -i version

三、结合其他命令更精准

只看版本相关行

strings binary | grep -Ei 'version|release|build'

显示字符串偏移(排查用)

strings -a -n 6 binary | grep -i version
  • -a:扫描整个文件
  • -n 6:只显示长度 ≥6 的字符串

四、实战例子

查 nginx 版本

strings /usr/sbin/nginx | grep -i 'nginx/'

查 OpenSSL 版本

strings /usr/lib/x86_64-linux-gnu/libssl.so | grep -i 'OpenSSL'

查未知二进制

file unknown_bin
strings unknown_bin | head
strings unknown_bin | grep -iE 'ver|build|commit'

五、注意事项(很重要)

  1. 不一定有版本号
    • 编译时可能 stripped(去除符号)
  2. 版本可能被混淆
    • 如 1.2.3-rc1-custom
  3. 优先用正规方式
    command --version
    command -V
    rpm -qi pkg
    dpkg -l | grep pkg
    

六、总结一句话

strings + grep 是“兜底办法”,不是首选办法。

如果你有具体程序或文件,我可以给你精确命令。

0 踩