温馨提示×

Ubuntu Strings 能干嘛

小樊
60
2026-08-05 07:06:43
栏目: 智能运维

在 Ubuntu(以及大多数 Linux 系统)中,strings 是一个命令行工具,主要用途是:

从二进制文件(可执行文件、库、core dump 等)中提取“可打印的字符串”


一、strings 能干什么?(常见用途)

1️⃣ 查看程序里包含的字符串

比如查看一个可执行文件里有没有:

  • 文件路径
  • URL
  • 调试信息
  • 错误信息
  • 作者信息
strings /bin/ls

可能看到类似:

Usage: %s [OPTION]... [FILE]...
https://www.gnu.org/

2️⃣ 分析未知程序 / 逆向分析

常用于:

  • 安全分析
  • 恶意软件分析
  • 判断程序来源
strings suspicious_binary

可以帮你判断:

  • 是否连接了某个服务器
  • 是否包含敏感路径
  • 是否调用了某些系统命令

3️⃣ 从 core dump 或崩溃文件中找线索

程序崩溃后:

strings core

可能看到:

  • 出错的函数名
  • 文件名
  • 日志信息

4️⃣ 查看动态库里导出的提示信息

strings /lib/x86_64-linux-gnu/libc.so.6

5️⃣ 取证 / 安全审计

  • 检查是否硬编码了密码、IP、Token
  • 查看程序是否包含可疑字符串

二、strings 提取的是什么?

它默认提取:

  • 长度 ≥ 4 的连续可打印字符
  • 包括:字母、数字、符号(ASCII)

不会提取:

  • 二进制机器码
  • 压缩数据
  • 加密内容(除非恰好可打印)

三、常用参数

指定最小字符串长度

strings -n 8 binary

显示字符串在文件中的偏移

strings -t x binary

从特定段提取(高级)

strings -e l binary   # 16-bit little-endian Unicode

四、典型使用场景总结

场景 示例
快速分析程序 strings app
安全/逆向 查找 IP、URL
调试 core dump 分析
取证 检查是否泄露信息
学习 看程序里“藏了什么”

五、注意事项(很重要)

⚠️ strings 不是反编译工具

  • 不能还原源码
  • 只能看到“文本碎片”

⚠️ 不能用于加密/混淆程序

  • 字符串可能被加密、压缩、动态生成

六、一句话总结

Ubuntu 的 strings 就是:从二进制文件里“抠出人类能看懂的字符串”,常用于分析、调试和安全审计。

如果你愿意,我可以:

  • 给你一个 strings 实战示例
  • 教你如何结合 grep 使用
  • 或解释它和 objdump / readelf 的区别

0 踩