温馨提示×

linux strings是什么

小樊
41
2026-07-07 04:00:57
栏目: 智能运维

stringsLinux 下一个常用的命令行工具,用来从一个文件(通常是二进制文件)中提取可打印的字符串


一、strings 是什么?

strings 会扫描文件内容,找出长度足够、看起来像“文本字符串”的连续可打印字符序列,然后输出出来。

常用于:

  • 分析 二进制程序(ELF、可执行文件)
  • 查看 是否包含硬编码的路径、URL、密码、调试信息
  • 逆向分析、取证、调试

二、基本用法

strings 文件名

示例

strings /bin/ls

输出类似:

/lib64/ld-linux-x86-64.so.2
GNU C Library
Usage: %s [OPTION]... [FILE]...

三、常用选项

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

strings -n 6 文件名

只输出 长度 ≥ 6 的字符串。


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

strings -t x 文件名
  • -t x:十六进制偏移
  • -t d:十进制
  • -t o:八进制

示例:

strings -t x /bin/ls

输出:

8048000 /lib64/ld-linux-x86-64.so.2

3️⃣ 从特定节区提取(如 ELF)

strings -e l 文件名

-e 指定字符编码:

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

4️⃣ 结合 grep 使用(非常常见)

strings binary | grep password
strings binary | grep https

四、典型使用场景

✅ 1. 查找是否包含敏感信息

strings app | grep -i pass

✅ 2. 查看程序依赖或路径

strings a.out

✅ 3. 分析未知二进制

strings unknown_bin > strings.txt

✅ 4. 取证 / 安全分析

  • 查找隐藏 URL
  • 查找调试字符串
  • 查找加密密钥或 token

五、注意事项

  • strings 不会解析程序逻辑
  • 只能看到已存在的字符串
  • 字符串可能是:
    • 调试信息
    • 日志
    • 错误信息
    • 废弃代码

⚠️ 不能用来“解密”或“反编译”程序


六、总结一句话

strings 是 Linux 下从二进制文件中提取可读字符串的工具,常用于分析、调试和安全审计。

如果你愿意,我也可以:

  • 真实例子演示
  • strings 在逆向工程中的用法
  • 对比 strings vs objdump / xxd

0