在 Linux 里,strings 本身不能直接“找密文”,它只能把二进制文件里可打印的字符串提取出来。所谓“找密文”,通常是:
下面按常见场景说明。
strings file.bin
只看长度 ≥ 8 的字符串(更干净):
strings -n 8 file.bin
指定字符集(比如只看 ASCII):
strings -e l file.bin
strings file.bin | grep -iE "password|secret|token|key|api"
Base64 通常是:
A-Z a-z 0-9 + / =strings -n 16 file.bin | grep -E '^[A-Za-z0-9+/]{16,}={0,2}$'
strings file.bin | grep -E '^[0-9a-fA-F]{32,}$'
32 / 64 位 hex 常是:
strings /proc/<pid>/mem
或:
cat /proc/<pid>/maps
再配合 gdb / xxd 更专业。
binwalk firmware.bin
strings firmware.bin | grep -iE "private|key|encrypt"
strings -t x file.bin
strings file.bin | grep -v "GCC" | grep -v "libc"
⚠️ 只能用于:
❌ 不要对他人软件/系统做未经授权的提取
如果你愿意,可以告诉我:
我可以给你更精确的命令。