温馨提示×

如何用linux strings查隐藏文本

小樊
32
2026-09-02 10:54:02
栏目: 智能运维

在 Linux 里,strings 命令本身并不能“发现隐藏文本”的魔法功能,它只是从一个二进制文件或任意文件中提取“可打印字符序列”(默认长度 ≥ 4)。
所谓“隐藏文本”,通常是指:

  • 写在二进制文件中(如 ELF、PNG、PDF)
  • 被编译器/打包工具嵌入的字符串
  • 藏在资源段、注释、元数据里
  • 或加了简单编码(base64、xor、rot13)

下面按常见场景说明如何用 strings 查“隐藏文本”。


一、基本理论

strings 能看到的,是文件中连续的 ASCII / Unicode 可打印字符

strings file

或指定最小长度:

strings -n 6 file

二、常见用法示例

1️⃣ 查看程序中“藏起来”的字符串

strings /bin/ls

可看到:

  • 错误信息
  • 调试字符串
  • 作者注释
  • 配置名

2️⃣ 从图片 / PDF / 压缩包中找文本

strings image.png | less
strings document.pdf | grep password

常用于:

  • CTF
  • 取证
  • 检查水印 / 注释

3️⃣ 查找关键词(最实用)

strings file | grep -i "password\|secret\|token"

或宽一点:

strings -n 5 file | grep -E "key|user|admin"

4️⃣ 查看字符串偏移(定位用)

strings -t x file

输出示例:

1a2b3c /etc/passwd

可用于 hexdump / gdb 进一步分析。


三、进阶:配合其他工具

✅ 编码隐藏文本(base64)

strings file | base64 -d

✅ 结合 xxd / hexdump

xxd file | less

✅ 查 ELF 段

readelf -p .rodata binary

四、strings 看不到的情况(很重要)

strings 看不了

  • 加密内容(AES / RSA)
  • 纯 XOR(无明显明文)
  • 图片隐写(LSB)
  • 压缩后无明文字符

这时候需要:

  • binwalk
  • foremost
  • steghide
  • zsteg

五、实战小示例(CTF 思路)

file unknown
strings unknown | grep -i flag
strings -n 4 unknown | less

六、一句话总结

strings 不是“解密工具”,而是“把文件中裸露的字符揪出来”的工具。

如果你有具体文件类型或场景(比如 PNG 隐写、EXE、PDF、CTF),我可以给你更针对性的命令。

0