温馨提示×

什么是linux strings工具

小樊
40
2026-09-23 18:29:02
栏目: 智能运维

strings 是 Linux / Unix 系统中一个常用的命令行工具,通常属于 binutils 软件包。它的主要作用是:从一个二进制文件(或任意文件)中提取出“可打印的字符串”


一、什么是“可打印字符串”

在计算机文件中,除了文本,还包含大量二进制数据。
strings 会扫描文件,找出连续的可打印字符序列(通常是 ASCII 或 Unicode),并把它显示出来。

例如:

  • 程序里的提示信息("Usage: ls [OPTION]..."
  • 硬编码的路径(/etc/passwd
  • 错误信息
  • 版本号
  • 甚至密码或密钥(如果写死在程序里)

二、基本用法

strings 文件名

示例:

strings /bin/ls

输出可能包含:

Usage: %s [OPTION]... [FILE]...
%s %s%s%s%s%s%s%s%s%s%s%s%s
GNU coreutils

三、常用参数

1. 指定最小字符串长度

strings -n 6 file

只显示长度 ≥ 6 的字符串(默认通常是 4)。


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

strings -t x file     # 十六进制偏移
strings -t d file     # 十进制偏移
strings -t o file     # 八进制偏移

示例:

strings -t x /bin/ls

输出:

  1234 Usage: ls [OPTION]...

3. 只扫描特定区域(高级)

strings -e l file   # 16-bit little endian
strings -e B file   # 32-bit big endian

用于不同编码或架构的二进制文件。


四、典型使用场景

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

file unknown.bin
strings unknown.bin

✅ 2. 查看程序版本或作者信息

strings program | grep -i version

✅ 3. 安全 / 逆向分析

  • 查找硬编码密码
  • 查找 API 地址
  • 分析恶意软件行为

✅ 4. 调试或取证

  • 从 core dump 中提取信息
  • 从磁盘镜像中恢复文本

五、注意事项

  • strings 不能还原源代码
  • 输出可能包含大量无用信息
  • 对加密或压缩数据通常无效

六、简单总结

strings = 从二进制里“抠”出人类能看懂的文字

如果你愿意,我也可以:

  • 给你一个 实战例子
  • 对比 stringsgrep / xxd
  • 讲它在 CTF / 安全分析 中的用法

0