strings 是 Linux(包括 Ubuntu)里一个非常常用的命令行工具,主要功能是:
从一个二进制文件或任意文件中,提取出“可打印的字符串”
strings 会扫描文件内容,找出长度足够、可打印的字符序列(通常是 ASCII 或 UTF‑8),常用于:
strings 文件名
strings /bin/ls
输出类似:
Usage: %s [OPTION]... [FILE]...
GNU coreutils
http://www.gnu.org/
...
strings -n 6 test.bin
只显示 长度 ≥ 6 的字符串。
strings -t x test.bin
输出示例:
3a4f /lib64/ld-linux-x86-64.so.2
偏移格式:
-t x:十六进制-t d:十进制-t o:八进制strings -e l test.bin
-e 指定编码:
s:7-bit ASCII(默认)l:16-bit little-endianb:16-bit big-endianS:UTF-16cat test.bin | strings
strings app | grep password
strings app | grep http
常用于:
strings unknown_file
快速判断:
strings libfoo.so | grep '\.so'
strings suspicious.bin
可能发现:
⚠️ 不是反编译工具
| 工具 | 功能 |
|---|---|
strings |
提取可打印字符串 |
file |
判断文件类型 |
objdump |
反汇编、查看段信息 |
xxd |
查看原始十六进制 |
strings= 从二进制里“抠文字”的工具
如果你愿意,我也可以:
strings 和 grep / xxd / objdump 的用法