在 Debian(以及大多数 Linux 发行版)里,strings 通常指两件事之一:
strings 命令:从二进制文件中提取可打印字符串strings 文件(较少见,如某些调试包)下面分别说明。
strings 命令解析二进制文件strings /bin/ls
作用:列出 ls 二进制中所有长度 ≥ 4 的可打印字符串。
strings -n 6 file # 只显示长度 ≥ 6 的字符串
strings -e l file # 指定字符编码(l=16-bit little endian)
strings -a file # 扫描整个文件(包括初始化数据段)
strings -t x file # 显示字符串偏移(x=十六进制)
示例:
strings -n 8 -t x /usr/bin/apt
strings /usr/bin/dpkg | grep -i version
常用于:
dpkg -L package_name
调试包(如 package-dbgsym)中可能包含:
可这样分析:
strings /usr/lib/debug/usr/bin/xxx
dpkg-deb -x package.deb ./out
strings ./out/usr/bin/xxx
strings -a -n 6 binary | less
常见用途:
某些程序(如 gettext)会生成:
.pot.po.mo这些是国际化字符串文件,不是 strings 命令输出。
查看:
msgunfmt file.mo
strings 命令如果你有具体文件或场景(比如某个 deb 包、某个二进制),可以告诉我,我可以直接帮你分析。