在 Debian 系统中,通常所说的 strings 数据 有两种常见含义,下面分别说明如何“导出”。
strings 命令提取二进制文件中的可打印字符串如果你是想从可执行文件、库文件等中提取字符串,可以用 strings 工具。
sudo apt update
sudo apt install binutils
strings /bin/ls > ls_strings.txt
-n:指定最小字符串长度strings -n 6 /usr/bin/python3 > python_strings.txt
-e:指定字符编码(S/U/L/B)strings -e l libc.so.6 > libc_strings.txt
grep 过滤strings /usr/bin/ssh | grep -i "version"
如果你是做本地化(i18n),想导出程序的翻译字符串:
apt-get source package_name
例如:
apt-get source coreutils
find . -name "*.po"
如果源码使用 gettext:
cd package_source
make package.pot
或使用 xgettext:
xgettext -d app -o app.pot *.c
msgfmt zh_CN.po -o zh_CN.mo
如果你是分析已安装系统里的字符串资源:
strings /usr/lib/x86_64-linux-gnu/libc.so.6 > libc_strings.txt
或整个目录:
for f in /usr/bin/*; do
strings "$f" >> all_strings.txt
done
| 目的 | 方法 |
|---|---|
| 提取二进制可读字符串 | strings 文件 > out.txt |
| 本地化翻译字符串 | apt-get source + .po/.pot |
| 系统级分析 | strings + 脚本批量处理 |
如果你能具体说明:
我可以给你更精确的命令示例。