在 Debian 系统中,“strings” 通常指两件事之一,下面分别说明如何获取/使用它们。
strings 命令(最常见)strings 是一个二进制分析工具,用于从可执行文件、库、core dump 等中提取可打印字符串。
strings在 Debian / Ubuntu 中,strings 属于 binutils 包:
sudo apt update
sudo apt install binutils
安装完成后即可使用:
strings /bin/ls
# 从二进制文件中提取字符串
strings /usr/bin/curl
# 只显示长度 ≥ 10 的字符串
strings -n 10 filename
# 从共享库中读取
strings /lib/x86_64-linux-gnu/libc.so.6
# 输出到文件
strings binary > strings.txt
如果你指的是 Debian 软件包中的翻译字符串(i18n / gettext),例如 .po、.mo 文件,那获取方式不同。
apt-get source package-name
例如:
apt-get source coreutils
进入源码目录后,翻译文件通常在:
po/
ls /usr/share/locale/
.mo 文件是编译后的翻译字符串:
find /usr/share/locale -name "*.mo"
查看 .mo 内容(需要 gettext):
sudo apt install gettext
msgunfmt /usr/share/locale/zh_CN/LC_MESSAGES/coreutils.mo
如果你是想从 .deb 包中提取字符串:
dpkg -x package.deb extract_dir
strings extract_dir/usr/bin/xxx
| 你的需求 | 获取方式 |
|---|---|
使用 strings 命令 |
sudo apt install binutils |
| 分析二进制中的字符串 | strings 文件名 |
| 获取翻译字符串 | apt-get source 或 /usr/share/locale |
分析 .deb 包 |
dpkg -x + strings |
如果你能具体说明:
我可以给你更精确的示例。