在 Linux 中,strings 是一个命令行工具,主要作用是:从一个文件(尤其是二进制文件)中提取可打印的字符串。
strings 会扫描文件中的内容,把连续的、可打印的字符序列(通常是 ASCII 或 Unicode 文本)打印出来,忽略机器码、数据段等非文本内容。
常用于:
strings /bin/ls
可能看到:
strings unknown_file
快速判断:
strings app | grep password
strings app | grep http
常用于:
strings core.dump
strings firmware.bin
| 参数 | 作用 |
|---|---|
-n |
指定最小字符串长度(默认 4) |
-a |
扫描整个文件(默认只扫部分) |
-f |
显示文件名 |
-e |
指定编码(如 s=UTF-16) |
-t x |
显示字符串偏移(十六进制) |
示例:
strings -n 6 binary
strings -f *
strings -t x binary
✅ 可执行文件
✅ .so 动态库
✅ 固件
✅ 镜像
✅ 核心转储
❌ 纯加密数据(通常无意义)
Linux 的
strings就是“从非文本文件中抠出人类能看懂的文字”的工具。
如果你是:
strings 通常都是第一步。
需要我举个实际例子或配合 objdump / gdb 讲吗?