strings 是一个 Linux/Unix 下的命令行工具,在 Debian(以及大多数 Linux 发行版)中都可以直接使用。它的主要作用是:
从一个二进制文件(或任意文件)中提取出“可打印的字符串”
strings 会扫描文件内容,把其中 长度足够、连续可打印的字符序列 提取出来,通常用于:
例如查看 /bin/ls 里有哪些字符串:
strings /bin/ls
你可能会看到:
strings /usr/bin/xxx | grep password
用于快速判断程序里是否“硬编码”了某些敏感词(不推荐依赖,但常见于排查)。
如果你拿到一个没有源码的程序:
strings unknown_binary
可以大致了解它的用途或依赖。
strings libxxx.so
常用于:
-n 指定最小字符串长度默认是 4,可修改:
strings -n 6 filename
-t 显示字符串偏移strings -t x filename # 十六进制
strings -t d filename # 十进制
-e 指定字符编码strings -e l filename # 16-bit little-endian
❌ 不能反编译
❌ 不能还原源码
❌ 不能解密加密内容
它只能提取 “明文的、可打印字符”。
在 Debian 中,strings 通常来自:
binutils
查看是否安装:
dpkg -l binutils
✅ strings 用来 从二进制文件中提取可读文本
✅ 常用于 调试、分析、安全排查
✅ 是 binutils 工具集的一部分
✅ 输出的是 静态文本,不是程序逻辑
如果你愿意,我也可以:
strings vs objdump