在 Debian 系统中,“strings”通常指两件事之一:
strings 命令(来自 binutils):用于从二进制文件中提取可打印字符串.po、.pot 文件:Debian 软件包的翻译字符串下面分别说明如何“优化”。
strings 命令的使用如果你是指 如何更高效地使用 strings 命令来分析 Debian 上的二进制文件,可以从以下几个方面优化:
默认长度是 4,可提高以减少噪声:
strings -n 8 /bin/ls
减少无用输出:
strings -e s /usr/bin/xxx
或结合 objdump:
objdump -s -j .rodata /usr/bin/xxx
grep 精确过滤strings /usr/bin/xxx | grep -i error
rabin2(radare2)strings + less / awkbgrep(二进制 grep)dpkg -L package | grep bin | xargs strings
如果你是指 如何优化 Debian 软件中的可翻译字符串,通常指:
.pot / .po 文件msgfmt -c zh_CN.po
msguniq zh_CN.po > zh_CN.clean.po
gettext 统一提取intltool / gettextintltool-update -p
msgmerge old.po template.pot -o new.po
msgattrib --unused --no-obsolete -o clean.po zh_CN.po
如果是处理超大二进制文件:
strings -a 谨慎(慢)LC_ALL=C stringsmmap 工具(如 rabin2)你可以告诉我:
strings 命令 还是 翻译字符串?我可以给你更精确的优化方案。