在 Debian(以及一般的 Linux)世界里,strings 通常指两件事之一:
strings 命令(GNU binutils 中的工具)strings 文件 / gettext 相关字符串(i18n/l10n)下面分别说明如何“解读”它们的输出结果。
strings 命令的结果怎么解读strings 从一个二进制文件(可执行文件、库、内核模块等)中提取可打印的字符串(默认长度 ≥ 4)。
strings /bin/ls
"cannot open file")%s version 1.2.3)GCC:, GNU C)| 目的 | 方法 |
|---|---|
| 判断程序用途 | 看错误提示和路径 |
| 查版本 | strings xxx | grep -i version |
| 查依赖 | strings xxx | grep '\.so' |
| 安全审计 | 搜索 password, token, http |
| 逆向辅助 | 配合 objdump, gdb |
strings -n 6 file # 显示长度 ≥6 的字符串
strings -a file # 扫描整个文件
strings -e l file # 16-bit little endian
strings(国际化)在 Debian 中,/usr/share/locale/*/LC_MESSAGES/*.mo 是 编译后的 gettext 字符串。
strings /usr/share/locale/de/LC_MESSAGES/coreutils.mo
或更专业:
msgunfmt /usr/share/locale/de/LC_MESSAGES/coreutils.mo
msgid:原始英文msgstr:翻译后的字符串示例:
msgid "File not found"
msgstr "Datei nicht gefunden"
msgid 判断功能msgstr 判断语言质量strings unknown_bin | less
如果你看到:
Usage: myprog [options]
Config file: /etc/myprog.conf
→ 基本能判断它是某个守护进程。
Debian 中的 strings 结果,本质是“从二进制或语言中挖出来的可读文本”,用来理解程序行为、版本、错误或翻译。
如果你有具体的 strings 输出内容,可以直接贴出来,我可以帮你逐行解读。