温馨提示×

ubuntu strings能查隐藏字符吗

小樊
38
2026-10-03 12:08:43
栏目: 智能运维

简短回答:strings 本身不能直接“显示隐藏字符”,但它可以把二进制/文本里可见的 ASCII printable 字符提取出来,因此常用于发现“看起来隐藏”的字符串内容。

下面分几种情况说清楚:


1. strings 能做什么

strings 默认会扫描文件,提取可打印字符序列(默认长度 ≥ 4):

strings file.bin

例如文件里藏了:

PASS=secret123

即使文件不是文本文件,strings 也可能把它找出来。

✅ 适合:

  • 查找二进制里的密码、URL、路径
  • 分析恶意程序、固件、日志残留

2. strings 查不到的“隐藏字符”

以下情况 strings 查不到或看不清:

❌ 真正的不可打印字符

如:

  • \x00(null)
  • \x01~\x1f(控制字符)
  • UTF-16 / UTF-32 编码
  • 零宽字符(zero-width space)

strings 默认只显示 printable ASCII。


3. 怎么让 strings 更强一点

显示更多编码

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

显示偏移

strings -a -t x file.bin

4. 想看“隐藏字符”该用什么

如果你是真的想看隐藏/不可见字符,用这些更合适:

查看所有字节(含隐藏字符)

xxd file

或

hexdump -C file

文本文件中的隐藏字符

cat -A file.txt

会显示:

  • $ 行尾
  • ^I Tab
  • ^@ null

零宽字符

grep -nP '[\x{200B}\x{200C}\x{200D}]' file.txt

总结一句话

strings 能找“藏起来的字符串”,但不能直接显示“隐藏字符本身”
要看真正隐藏字符,用 xxd / hexdump / cat -A

如果你有具体场景(比如:恶意样本 / 文本诡异 / 二进制分析),可以贴出来我帮你看用哪个最合适。

0 踩