温馨提示×

strings命令怎么用

小樊
46
2026-08-17 11:44:05
栏目: 编程语言

strings 是 Linux/macOS 下常用的一个命令行工具,用来从一个文件(通常是二进制文件)中提取可打印的字符串,常用于逆向分析、排查程序、取证、调试等场景。

下面系统地介绍它的用法。


一、基本作用

从文件里找出“看起来像字符串”的内容(通常是 ASCII / Unicode 字符)

默认会提取长度 ≥ 4 的可打印字符序列。


二、基本用法

strings 文件名

示例

strings a.out

输出类似:

/lib64/ld-linux-x86-64.so.2
GLIBC_2.2.5
Hello World
Usage: test [options]

三、常用参数

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

strings -n 6 test.bin

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


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

以十六进制显示

strings -t x test.bin

以十进制显示

strings -t d test.bin

输出示例:

0x1a3c /lib64/ld-linux-x86-64.so.2

3️⃣ 从指定偏移开始扫描(-e 相关)

指定编码(常用于 Unicode)

参数 含义
-e l 16-bit little-endian
-e b 16-bit big-endian
-e L 32-bit little-endian
-e B 32-bit big-endian
strings -e l test.exe

4️⃣ 只扫描文件的一部分

strings -n 5 -t x test.bin | head

或结合 dd

dd if=test.bin bs=1 skip=1024 count=4096 | strings

5️⃣ 从标准输入读取

cat test.bin | strings

四、常见使用场景

✅ 1. 查看程序里的字符串(反编译辅助)

strings /bin/ls

常见内容:

  • 错误信息
  • 文件路径
  • 调试信息
  • 作者留下的字符串

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

strings app | grep -i password
strings app | grep -i token

⚠️ 注意:这只是辅助手段,不能替代安全审计。


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

strings unknown.bin

判断:

  • 是否是 ELF
  • 是否包含可读文本
  • 是否可能是脚本 / 恶意程序

✅ 4. 查看 .so / .exe / 固件

strings firmware.bin
strings program.exe

五、实战示例

示例 1:查找程序中的 URL

strings app | grep http

示例 2:查找字符串地址(逆向常用)

strings -t x app | grep "Hello"

示例 3:结合 less 查看

strings app | less

六、strings 不支持什么?

❌ 不能反编译
❌ 不能还原变量名、函数名
❌ 不保证字符串一定有意义

它只是**“按规则提取可打印字符”**。


七、常见误区

strings 不是杀毒工具
不能提取被加密/压缩的字符串
不是所有字符串都能看到


八、总结一句话

strings = 从二进制文件中“挖”出人类可读的字符串

如果你愿意,我可以:

  • 结合 CTF 逆向题 给你实战例子
  • 教你 用 strings 辅助 IDA / Ghidra 分析
  • 对比 strings vs binwalk vs xxd

你想用在什么场景?

0