温馨提示×

怎样用linux strings找密文

小樊
36
2026-09-08 11:43:27
栏目: 智能运维

在 Linux 里,strings 本身不是专门找密文的工具,它只是把二进制文件里“看起来像可打印字符串”的内容提取出来。所谓“找密文”,通常是:

  • 在二进制/固件/内存 dump 中找 可疑字符串
  • 从大量字符串中筛出 密钥、token、加密数据、base64、hex
  • 配合其他工具进一步分析

下面按实用场景讲。


一、基本用法

strings file.bin

只显示长度 ≥ 4 的可打印字符(默认):

strings -n 6 file.bin

指定字符集(常见 UTF-8 / ASCII):

strings -e l file.bin   # 16-bit little endian
strings -e b file.bin   # 16-bit big endian

二、从二进制里“找疑似密文”

1️⃣ 找 Base64(常见密文/编码)

strings file.bin | grep -E '[A-Za-z0-9+/]{16,}'

或更严格:

strings -n 20 file.bin | grep -E '^[A-Za-z0-9+/]+={0,2}$'

2️⃣ 找 Hex 字符串

strings file.bin | grep -E '([0-9a-fA-F]{2}){16,}'

3️⃣ 找密钥/敏感词

strings file.bin | grep -iE 'password|secret|key|token|apikey|private'

4️⃣ 找 AES / RSA / 加密算法痕迹

strings file.bin | grep -iE 'AES|RSA|DES|SHA|encrypt|decrypt'

三、结合偏移地址(非常重要)

加上 -a -t x

strings -a -t x file.bin

输出示例:

1a2b3c password=admin123
2c4d5e U2FsdGVkX1...

这样可以:

  • 知道密文在文件中的位置
  • dd / hexdump 进一步提取

四、提取某段“疑似密文”区域

strings -a -t x file.bin | grep -i secret

然后用:

dd if=file.bin bs=1 skip=0x1a2b3c count=64 of=secret.bin

五、实战组合(推荐)

strings -n 8 -a -t x file.bin \
| grep -iE 'key|secret|token|encrypt|base64|=='

或:

strings file.bin | base64 -d 2>/dev/null

(尝试直接解 base64)


六、重要提醒(安全 & 伦理)

✅ 只能用于:

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

❌ 不要:

  • 逆向他人软件窃取密钥
  • 未授权分析商业固件

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

  • CTF / 固件 / 内存 / 可执行文件
  • 文件类型(elf / bin / img / pcap)

我可以给你更精准的 strings + 分析命令

0