“Debian strings”这个说法在不同场景下含义不同,下面把最常见的几种理解都覆盖到,并给出对应的提取方法。你可以按需选用。
这是最常见、最通用的含义。
strings /path/to/binary
示例:
strings /bin/ls
dpkg -L package_name | xargs strings
示例:
dpkg -L coreutils | xargs strings
.deb 包dpkg-deb -x package.deb /tmp/pkg
strings /tmp/pkg/usr/bin/xxx
很多 Debian 软件使用 gettext,字符串通常在 .po / .pot 文件中。
xgettext -o messages.pot *.c
/usr/share/locale/
/usr/share/locale-langpack/
查看:
find /usr/share/locale -name "*.mo"
apt-cache show package_name
或:
dpkg-query -s package_name
dpkg-parsechangelog
grep -R '"[^"]*"' src/
grep -E '"[^"]+"' *.c
journalctl | strings
或:
dmesg | strings
strings debian.iso
dpkg -L package_name | while read f; do
[ -f "$f" ] && strings "$f"
done
| 你的真实需求 | 推荐命令 |
|---|---|
| 二进制中的字符串 | strings |
| 软件包内容 | dpkg -L + strings |
| 翻译字符串 | xgettext / .po |
| 包描述 | apt-cache show |
| 源码字符串 | grep |
| ISO / 固件 | strings file |
如果你能补充一句:
你是想分析 某个具体软件包?还是 做逆向 / 安全分析 / 本地化 / 调试?
我可以给你更精确、一步到位的命令。