strings 是 Linux 下一个非常常用的命令行工具,用来从二进制文件(或任意文件)中提取可打印的字符串。下面是它的典型使用场景和说明。
strings file
默认会输出文件中长度 ≥ 4 的可打印字符序列(ASCII 可见字符)。
strings ./a.out
✅ 适合:
比如:
strings app | grep -i password
strings app | grep -i http
⚠️ 注意:只是“可能”,不是解密
有时文件没有扩展名:
strings unknown_file | head
可能看到:
当只有二进制、没有源码时:
strings binary | grep version
strings malware.bin | grep -E "http|/bin|/etc"
比如:
strings libxxx.so
可以看到:
strings file | less
strings file | grep -n "main"
strings file | awk '{print length, $0}' | sort -n
-n 6 # 最少 6 个字符
-a # 扫描整个文件(不只是数据段)
-e l # 指定编码(l=16-bit little endian)
-f file # 显示文件名
❌ 不能:
当你“看不懂一个文件,但想知道里面写了什么字”的时候,就用
strings。
如果你有具体使用场景(比如 CTF、逆向、服务器排查),我可以给你更针对性的例子。