温馨提示×

linux strings命令怎么用

小樊
45
2026-09-20 18:45:22
栏目: 智能运维

strings 是 Linux 下一个非常常用的命令行工具,用来从二进制文件或任意文件中提取可打印的字符串(通常是 ASCII 或 Unicode 文本)。它常用于分析程序、排查问题、逆向分析、日志提取等场景。

下面从基本用法 → 常用参数 → 实际示例来介绍。


一、基本用法

strings 文件名

示例:

strings /bin/ls

这会输出 ls 命令里所有可打印的字符串,比如路径、提示信息、错误信息等。


二、常用参数

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

默认只显示长度 ≥ 4 的字符串。

strings -n 6 file.bin

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


2. -a / --all 扫描整个文件

默认 strings 可能只扫描某些段(对可执行文件)。
想扫描整个文件时用:

strings -a file

3. -e 指定字符编码

常见取值:

  • s:7-bit ASCII(默认)
  • S:8-bit ASCII
  • b:16-bit Big Endian
  • l:16-bit Little Endian
  • B:32-bit Big Endian
  • L:32-bit Little Endian

示例(提取 UTF-16 小端字符串):

strings -e l file.exe

4. -f 显示文件名

当同时处理多个文件时,显示每个字符串来自哪个文件:

strings -f *.bin

输出示例:

a.bin: Hello
b.bin: World

5. -t 显示偏移地址

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

输出示例:

1a2f  password123

6. 结合 grep 使用(最常见)

strings file | grep -i password

从二进制中找密码相关字符串。


三、实战示例

1. 从二进制文件中找路径

strings /usr/bin/python3 | grep "/usr"

2. 从 core dump 或未知文件中提取文本

strings core.dump | less

3. 分析恶意程序(示例)

strings malware.bin | grep -E "http|cmd|exec"

4. 从图片中提取隐藏字符串

strings image.jpg

(有些 CTF 题目会这么玩)


四、注意事项

  • strings 只能提取明文字符串,加密或压缩内容看不到
  • 对大型文件可能输出很多内容,建议配合 grep / less
  • 并不是“反编译”,只是文本提取

如果你愿意,我可以:

  • 给你具体场景的命令(比如分析某个程序)
  • 或对比 strings vs xxd / hexdump
  • 或讲 CTF / 安全分析中的 strings 技巧

你想用在什么场景?

0 踩