温馨提示×

Ubuntu strings有啥功能

小樊
43
2026-07-21 16:01:40
栏目: 智能运维

strings 是 Linux(包括 Ubuntu)里一个非常常用的命令行工具,主要功能是:

从一个二进制文件或任意文件中,提取出“可打印的字符串”


一、strings 是干什么的?

strings 会扫描文件内容,找出长度足够、可打印的字符序列(通常是 ASCII 或 UTF‑8),常用于:

  • 查看二进制文件里包含的文本
  • 分析程序、库、core dump
  • 逆向、调试、取证、排查问题

二、基本用法

strings 文件名

示例

strings /bin/ls

输出类似:

Usage: %s [OPTION]... [FILE]...
GNU coreutils
http://www.gnu.org/
...

三、常见参数

1️⃣ 指定最小字符串长度(默认是 4)

strings -n 6 test.bin

只显示 长度 ≥ 6 的字符串。


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

strings -t x test.bin

输出示例:

 3a4f /lib64/ld-linux-x86-64.so.2

偏移格式:

  • -t x:十六进制
  • -t d:十进制
  • -t o:八进制

3️⃣ 从特定节区读取(ELF 文件)

strings -e l test.bin

-e 指定编码:

  • s:7-bit ASCII(默认)
  • l:16-bit little-endian
  • b:16-bit big-endian
  • S:UTF-16

4️⃣ 从 stdin 读取

cat test.bin | strings

四、典型使用场景

✅ 1. 查看程序里有没有硬编码信息

strings app | grep password
strings app | grep http

常用于:

  • 查找泄露的 URL
  • 查找调试信息
  • 查找敏感字符串(虽然不安全)

✅ 2. 分析未知二进制文件

strings unknown_file

快速判断:

  • 是否是 ELF
  • 是否包含可读文本
  • 是否引用某些库或路径

✅ 3. 查看动态库依赖(辅助)

strings libfoo.so | grep '\.so'

✅ 4. 取证 / 安全分析

strings suspicious.bin

可能发现:

  • IP 地址
  • 命令字符串
  • 错误信息

五、strings 的局限

⚠️ 不是反编译工具

  • 只能提取字符串
  • 不能还原逻辑
  • 不能看函数、变量名(除非没被 strip)

六、和 file / objdump 的区别

工具 功能
strings 提取可打印字符串
file 判断文件类型
objdump 反汇编、查看段信息
xxd 查看原始十六进制

七、一句话总结

strings = 从二进制里“抠文字”的工具

如果你愿意,我也可以:

  • 结合 ELF / 逆向 / CTF 给你讲
  • 真实例子演示
  • 对比 stringsgrep / xxd / objdump 的用法

0