strings 是 Linux 下常用的命令,用于从二进制文件、可执行文件或其他非文本文件中提取可打印字符串(通常是 ASCII 或 Unicode 字符串)。下面是常用参数和典型用法说明。
strings file
从 file 中提取长度 ≥ 4 的可打印字符串。
-n / --bytes=:指定最小字符串长度strings -n 6 file
只显示长度 ≥ 6 的字符串(默认是 4)。
-a / --all:扫描整个文件strings -a file
默认可能只扫描数据段,-a 会扫描整个文件(包括代码段)。
-f / --print-file-name:显示文件名strings -f file
输出格式:
file: string_content
常用于多个文件一起查。
-e / --encoding=:指定字符编码可选值:
s:7-bit 字符串(默认)S:16-bit 字符串b:32-bit 字符串l:64-bit 字符串(little endian)B / L:大端 / 小端示例(查找 UTF-16 字符串):
strings -e S file
-t / --radix=:显示偏移地址可选:
o:八进制x:十六进制d:十进制strings -t x file
输出:
1a2f some_string
-o:等价于 -t o(旧参数)strings -o file
--:表示参数结束strings -- -file
用于处理以 - 开头的文件名。
strings /bin/ls
strings -a binary | grep -i password
strings -t x -n 6 binary
strings -f *.so
strings -e S program.exe
如果你愿意,我也可以:
strings 与 grep / hexdump