在 Debian(以及一般的 Linux)系统中,strings 是一个命令行工具,通常来自 binutils 包。它的作用是:
从一个二进制文件(或其他非文本文件)中提取可打印的字符串(printable character sequences)
strings 能查什么比如:
/bin/ls、/usr/sbin/nginx).so 文件).ko)可以查到:
strings /bin/ls
strings /usr/sbin/nginx | grep -i version
常见能看到的:
安全分析中常用:
strings suspicious_bin | less
可发现:
不仅限程序:
strings firmware.bin
strings image.img
能提取:
比如查看 .deb 解包后的文件:
strings usr/bin/someprog
strings [选项] 文件
常用:
-n 长度:只显示长度 ≥ n 的字符串strings -n 8 binary
-a:扫描整个文件(默认可能跳过部分)-e:指定字符编码(如 s=UTF-16)-t x / -t d:显示字符串偏移(十六进制/十进制)示例:
strings -n 6 -t x /bin/ls
strings 不能做什么(注意)❌ 不能反编译
❌ 不能还原源码
❌ 不能保证看到所有逻辑
❌ 动态生成/加密的字符串看不到
| 场景 | 示例 |
|---|---|
| 快速了解未知程序 | strings file |
| 查版本信息 | grep version |
| 安全审计 | 查 IP / 命令 |
| 固件分析 | strings firmware.bin |
| 排错 | 看错误信息字符串 |
如果你愿意,可以告诉我:
我可以给你更针对性的 strings 用法示例。