在 Debian(以及一般的 Linux)系统里,你说的 strings 通常是指 strings 命令(来自 binutils 包)。它的主要用途是:从一个二进制文件(可执行文件、库、固件等)中提取可打印的字符串。
下面按用途给你梳理一下,比较实用:
strings 是干什么的strings 会扫描文件,把其中连续的可打印字符序列打印出来,常用于:
例如:
strings /bin/ls
你会看到很多字符串,比如:
Usage: %s [OPTION]... [FILE]...
ls
GNU coreutils
很多程序会在二进制里写:
strings /usr/bin/xxx | grep -i version
不知道一个文件是不是 ELF / 脚本 / 加密数据:
file unknown.bin
strings unknown.bin | head
如果 strings 输出一堆人类可读文本,大概率不是加密数据。
strings malware.bin | grep -i http
⚠️ 注意:只能看“明文”,加密内容看不到。
strings libxxx.so | grep '.so'
对路由器、IoT 固件:
strings firmware.bin | less
常能看到:
strings -n 6 file # 只显示长度 ≥6 的字符串
strings -a file # 扫描整个文件(不止数据段)
strings -e l file # 指定编码(l=16位小端)
如果你说的是 debian/strings 文件(打包相关):
dh_strip、dbgsymDebian 上的
strings就是从二进制文件中“扒出看得懂的文字”,常用于调试、分析、安全审计。
如果你是想问 打包里的 strings 文件,或者是 某个具体命令报错,可以贴一下上下文,我可以更精准回答。