温馨提示×

linux strings命令怎么用才好

小樊
45
2026-09-11 09:45:51
栏目: 智能运维

strings 是 Linux 下一个非常实用的命令,用来从二进制文件、可执行文件、core dump、设备文件等中提取可打印的字符串。下面从「基础用法 → 常用技巧 → 实战场景」给你讲清楚,怎么用才“好用”。


一、最基础用法

strings file

从 file 中提取所有长度 ≥ 4 的可打印字符串(默认最小长度 4)。

示例:

strings /bin/ls

二、常用参数(重点)

1️⃣ 指定最小字符串长度 -n

strings -n 6 binary

⚠️ 默认是 4,太小容易噪音多;分析二进制时常用 6~8


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

strings -t x binary      # 十六进制
strings -t d binary      # 十进制
strings -t o binary      # 八进制

示例:

strings -t x /bin/ls

输出类似:

1f3c /lib64/ld-linux-x86-64.so.2

✅ 常用于 逆向 / 定位字符串位置


3️⃣ 只搜索某一段(配合 dd 或 objdump)

strings -n 8 -t x binary | grep password

4️⃣ 指定字符编码 -e

strings -e s binary   # 7-bit ASCII(默认)
strings -e b binary   # 16-bit Big Endian
strings -e l binary   # 16-bit Little Endian
strings -e B binary   # 32-bit Big Endian
strings -e L binary   # 32-bit Little Endian

✅ 分析 UTF-16 / Windows 程序 很有用


5️⃣ 从 stdin 读取

cat binary | strings

或配合管道:

xxd binary | strings

三、实战场景(怎么用才“好”)

✅ 场景 1:快速看程序里有什么字符串

strings /usr/bin/nginx | less

常用于:

  • 看版本信息
  • 看错误提示
  • 看硬编码路径

✅ 场景 2:CTF / 逆向分析

strings -n 6 -t x challenge | grep -i flag

或:

strings challenge | grep -E "password|user|admin"

✅ 场景 3:分析 core dump

strings core | less

快速看:

  • 崩溃时打印的信息
  • 文件名、函数名线索

✅ 场景 4:检查是否泄露敏感信息

strings app | grep -iE "token|secret|password"

⚠️ 安全性审查非常有用


✅ 场景 5:分析未知文件类型

file unknown.bin
strings unknown.bin

四、和别的命令组合(高级)

配合 grep

strings binary | grep -C 2 "main"

配合 objdump

objdump -s -j .rodata binary | strings

配合 find

find . -type f -exec strings {} \; | grep "TODO"

五、常见坑

❌ 默认长度太短 → 噪音多
✅ 用 -n 6 或更大

❌ 字符串被编码(UTF-16)看不到
✅ 用 -e l / -e b

❌ 动态生成的字符串看不到
✅ strings 只能看静态字符串


六、总结一句话

strings = 快速窥探二进制内部文本的“万能放大镜”

如果你愿意,可以告诉我:

  • 你是 CTF / 安全 / 运维 / 开发 哪个方向
  • 想分析什么文件

我可以给你更针对性的用法示例。

0 踩