strings 是 Linux / Unix 系统中一个常用的命令行工具,通常属于 binutils 软件包。它的主要作用是:从一个二进制文件(或任意文件)中提取出“可打印的字符串”。
在计算机文件中,除了文本,还包含大量二进制数据。
strings 会扫描文件,找出连续的可打印字符序列(通常是 ASCII 或 Unicode),并把它显示出来。
例如:
"Usage: ls [OPTION]...")/etc/passwd)strings 文件名
示例:
strings /bin/ls
输出可能包含:
Usage: %s [OPTION]... [FILE]...
%s %s%s%s%s%s%s%s%s%s%s%s%s
GNU coreutils
strings -n 6 file
只显示长度 ≥ 6 的字符串(默认通常是 4)。
strings -t x file # 十六进制偏移
strings -t d file # 十进制偏移
strings -t o file # 八进制偏移
示例:
strings -t x /bin/ls
输出:
1234 Usage: ls [OPTION]...
strings -e l file # 16-bit little endian
strings -e B file # 32-bit big endian
用于不同编码或架构的二进制文件。
file unknown.bin
strings unknown.bin
strings program | grep -i version
strings 不能还原源代码strings = 从二进制里“抠”出人类能看懂的文字
如果你愿意,我也可以:
strings 和 grep / xxd