温馨提示×

如何生成Debian strings

小樊
43
2026-07-12 17:39:55
栏目: 智能运维

在 Debian 系统中,“strings” 通常指两件事之一,取决于你的具体需求:

  1. strings 命令:从二进制文件中提取可打印字符串
  2. Debian 本地化中的 .po / .pot 字符串:用于翻译的源字符串

下面分别说明。


一、使用 strings 命令(最常见)

1. 安装 strings

在 Debian / Ubuntu 上,它属于 binutils

sudo apt update
sudo apt install binutils

2. 基本用法

从二进制文件中提取字符串:

strings /bin/ls

3. 常用选项

strings -n 6 filename        # 只显示长度 ≥ 6 的字符串
strings -e l filename        # 指定编码(l = 16-bit little-endian)
strings -o filename          # 显示字符串在文件中的偏移

4. 从 .so、可执行文件、core dump 中提取

strings libfoo.so
strings core

二、生成 Debian 软件包的翻译字符串(gettext)

如果你是 Debian 包维护者或开发者,通常说的 “生成 strings” 是指:

从源代码中提取可翻译字符串,生成 .pot 文件

1. 安装工具

sudo apt install gettext autotools-dev

2. 在源码中标记字符串

C / C++ 示例:

printf(_("Hello, world!\n"));

3. 生成 POT 文件

xgettext --language=C --keyword=_ --output=messages.pot *.c

4. Debian 包中的标准做法

很多 Debian 包使用:

make dist

或:

autoreconf -i
./configure
make

配合:

make update-po

生成或更新 .po 文件。


三、Debian 系统本地化字符串(debconf)

如果是 debconf 模板字符串

1. 查看已有字符串

debconf-show <package>

2. 提取 debconf 模板

debconf-get-selections

或查看:

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

四、从已安装的 Debian 包中“生成 strings”

.deb 文件中提取

dpkg-deb -x package.deb tmp/
strings tmp/usr/bin/foo

或从已安装文件:

dpkg -L package | xargs strings

五、常见用途总结

目的 方法
分析二进制 strings
提取翻译字符串 xgettext
Debian 包翻译 .po / .pot
debconf 字符串 .templates

如果你能具体说明:

  • 逆向分析
  • 还是 Debian 包维护
  • 还是 翻译 / 本地化

我可以给你更精确的命令和示例。

0