strings 是 Linux 下一个非常实用的命令,用来从一个文件(尤其是二进制文件)中提取可打印的字符串。它常用于分析程序、排查问题、逆向分析、取证等场景。
下面从基本用法 → 常用参数 → 实际示例给你讲清楚。
strings 会扫描文件中的连续可打印字符(默认长度 ≥ 4),并输出出来。
适合用于:
strings 文件名
strings /bin/ls
输出类似:
Usage: ls [OPTION]... [FILE]...
GNU coreutils
http://www.gnu.org/
-n)strings -n 6 file
只显示 长度 ≥ 6 的字符串(过滤掉短噪声)
-t)strings -t x file # 十六进制
strings -t d file # 十进制
strings -t o file # 八进制
示例:
strings -t x /bin/ls
输出:
1f3c /lib64/ld-linux-x86-64.so.2
2050 Usage: ls
-e)用于不同字符编码:
strings -e s file # 7-bit ASCII
strings -e b file # 16-bit big endian
strings -e l file # 16-bit little endian
strings -e B file # 32-bit big endian
strings -e L file # 32-bit little endian
常用于 Unicode 字符串 提取。
--radix + dd 配合)dd if=file bs=1 skip=100 count=500 | strings
cat binary_file | strings
strings app | grep -i password
strings binary | grep http
file unknown.bin
strings unknown.bin
strings /usr/bin/xxx | grep -i error
⚠️ strings 不会解析结构,只是“暴力扫描”
⚠️ 字符串可能被加密或压缩,提取不到
⚠️ 对 UTF-8 中文支持一般,中文可能显示不全
| 功能 | 命令 |
|---|---|
| 基本提取 | strings file |
| 最小长度 | strings -n 6 file |
| 显示偏移 | strings -t x file |
| 搜索关键字 | strings file | grep xxx |
| Unicode | strings -e l file |
如果你愿意,可以告诉我:
我可以直接给你针对性的 strings 使用方案。