温馨提示×

如何用linux strings找密文

小樊
48
2026-09-17 15:17:55
栏目: 智能运维

在 Linux 里,strings 本身不能直接“找密文”,它只能把二进制文件里可打印的字符串提取出来。所谓“找密文”,通常是:

  • 从二进制/内存/固件里提取可疑字符串
  • 再结合经验判断哪些可能是密钥、token、加密数据

下面按常见场景说明。


一、基础用法(提取字符串)

strings file.bin

只看长度 ≥ 8 的字符串(更干净):

strings -n 8 file.bin

指定字符集(比如只看 ASCII):

strings -e l file.bin

二、配合 grep 找“疑似密文”

1️⃣ 找常见敏感词

strings file.bin | grep -iE "password|secret|token|key|api"

2️⃣ 找 Base64 特征

Base64 通常是:

  • 长度较长
  • 只包含 A-Z a-z 0-9 + / =
strings -n 16 file.bin | grep -E '^[A-Za-z0-9+/]{16,}={0,2}$'

3️⃣ 找 Hex 密文(如 AES key)

strings file.bin | grep -E '^[0-9a-fA-F]{32,}$'

32 / 64 位 hex 常是:

  • MD5(32)
  • SHA256(64)
  • AES key

三、从进程中找(内存里的密文)

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"

六、重要提醒(合规)

⚠️ 只能用于:

  • 自己的程序
  • 授权测试
  • CTF / 学习

❌ 不要对他人软件/系统做未经授权的提取


如果你愿意,可以告诉我:

  • ELF / APK / 固件 / 内存
  • 想找的是 密码 / Key / Token / 加密数据

我可以给你更精确的命令。

0