strings 是 Debian/Ubuntu 等 Linux 系统中常用的命令行工具,通常来自 binutils 包,用于从二进制文件(可执行文件、库、核心转储等)中提取可打印的字符串。
下面是 strings 常用参数(选项) 的说明(基于 GNU strings):
strings [选项] 文件...
-n <长度>
或
--bytes=<长度>
只显示长度不小于指定值的字符串。
示例:
strings -n 6 app.bin
-e <编码>
常见取值:
s:7-bit 字符串(默认)S:8-bit 字符串b:16-bit(小端)B:16-bit(大端)l:32-bit(小端)L:32-bit(大端)示例:
strings -e l binary
--section=<节名>
只从指定节中提取字符串(如 .rodata)。
示例:
strings --section=.rodata app
-a
或
--all
扫描整个文件,而不只是加载的数据段(默认行为可能已经类似)。
-t <格式>
o:八进制x:十六进制d:十进制示例:
strings -tx app
-f
或
--print-file-name
在每行字符串前显示文件名。
--include-all-whitespace
(较少用)
strings | grep xxx
通常配合管道使用。
-h
或
--help
-V
或
--version
strings /bin/ls
strings app | grep -E 'https?://|/etc/|/usr/'
strings -tx -n 8 app
strings 常用于:
sudo apt install binutils
如果你愿意,我也可以帮你 对比 strings 与 grep / objdump 的使用场景,或者给你 实际分析某个二进制文件的例子。