简单回答:strings 本身不能“专门”看隐藏文本,但在多数情况下,它能把文件中“以可打印字符形式存在”的隐藏/嵌入文本提取出来。
下面分情况说清楚:
strings 能看到的“隐藏文本”是什么strings 的作用是:
从二进制或任意文件中,提取出连续的可打印字符序列(默认长度≥4)。
所以以下情况它通常能看到:
比如:
示例:
strings example.bin | grep password
有些程序会把文字放在文件尾部或 padding 区,strings 照样能扫出来。
.exe / .dll.so.apk(先用 unzip 解)strings 看不到的“隐藏文本”以下情况它基本无效:
U2FsdGVkX1+abc123...
→ 只是乱码,不是可读文本
→ 需要专门工具(如 steghide, zsteg, binwalk)
# 最小长度改为 6
strings -n 6 file
# 显示偏移
strings -a -t x file
# 扫描整个文件(包括代码段)
strings -a file
# 结合 grep
strings file | grep -i "secret\|token\|key"
| 工具 | 用途 |
|---|---|
binwalk |
分析固件、嵌套文件 |
foremost |
文件 carving |
exiftool |
元数据中的文本 |
xxd / hexdump |
手动看字节 |
steghide |
隐写分析 |
strings能看“藏起来的明文”,但看不了“加密或隐写的文本”。
如果你有具体文件类型(比如 PNG / ELF / PDF),我可以给你更针对性的命令。