在 Debian(以及大多数 Linux 发行版)语境里,“strings” 通常指两件事之一,先确认你指的是哪一种,再对应看下面的内容。
strings 命令(查看二进制中的可读字符串)这是最常见的情况。
strings /bin/ls
作用:从二进制文件、库文件、固件等中提取可打印的 ASCII / Unicode 字符串。
strings -n 6 file # 只显示长度 ≥6 的字符串
strings -a file # 扫描整个文件(不止数据段)
strings -e l file # 指定编码(l=16bit little endian)
strings /usr/bin/dpkg | less
你可能会看到:
strings binary | grep -i error
objdump -s binary
file binary
.mo / 翻译字符串(i18n)如果是“Debian 软件里的 strings 是怎么管理的”:
gettext("Hello")
或
_("Hello")
.po:人写的翻译.mo:编译后的二进制翻译文件查看 .mo 文件:
msgunfmt /usr/share/locale/zh_CN/LC_MESSAGES/dpkg.mo
有些地方你会看到:
debian-installer 中的字符串.template 文件(debconf)查看 debconf 模板:
cat /var/lib/dpkg/info/*.templates
如果你只是“读不懂 strings 输出”,那是正常的——它本来就是零散字符串,不是给人直接读的,而是给调试、逆向、本地化分析用的。
如果你能贴一段具体输出或说明场景(调试?逆向?翻译?安装?),我可以更具体地帮你“读懂”。