温馨提示×

怎样读懂debian strings

小樊
39
2026-10-18 18:44:15
栏目: 智能运维

在 Debian(以及大多数 Linux 发行版)语境里,“strings” 通常指两件事之一,先确认你指的是哪一种,再对应看下面的内容。


一、你指的是 strings 命令(查看二进制中的可读字符串)

这是最常见的情况。

1. 基本用法

strings /bin/ls

作用:从二进制文件、库文件、固件等中提取可打印的 ASCII / Unicode 字符串。

2. 常见参数

strings -n 6 file        # 只显示长度 ≥6 的字符串
strings -a file          # 扫描整个文件(不止数据段)
strings -e l file        # 指定编码(l=16bit little endian)

3. 实战例子

strings /usr/bin/dpkg | less

你可能会看到:

  • 错误信息
  • 帮助文本
  • 文件路径
  • 编译信息

4. 结合其他工具

strings binary | grep -i error
objdump -s binary
file binary

二、你指的是 Debian 软件包里的 .mo / 翻译字符串(i18n)

如果是“Debian 软件里的 strings 是怎么管理的”:

1. 源代码中的字符串

  • 源码里通常用:
gettext("Hello")

或

_("Hello")

2. 翻译文件

  • .po:人写的翻译
  • .mo:编译后的二进制翻译文件

查看 .mo 文件:

msgunfmt /usr/share/locale/zh_CN/LC_MESSAGES/dpkg.mo

三、你指的是 Debian 安装镜像 / 系统里的 strings 文件

有些地方你会看到:

  • debian-installer 中的字符串
  • .template 文件(debconf)

查看 debconf 模板:

cat /var/lib/dpkg/info/*.templates

四、总结一句话

如果你只是“读不懂 strings 输出”,那是正常的——它本来就是零散字符串,不是给人直接读的,而是给调试、逆向、本地化分析用的。

如果你能贴一段具体输出或说明场景(调试?逆向?翻译?安装?),我可以更具体地帮你“读懂”。

0 踩