简短回答:strings 本身不能直接“显示隐藏字符”,但它可以把二进制/文本里可见的 ASCII printable 字符提取出来,因此常用于发现“看起来隐藏”的字符串内容。
下面分几种情况说清楚:
strings 能做什么strings 默认会扫描文件,提取可打印字符序列(默认长度 ≥ 4):
strings file.bin
例如文件里藏了:
PASS=secret123
即使文件不是文本文件,strings 也可能把它找出来。
✅ 适合:
strings 查不到的“隐藏字符”以下情况 strings 查不到或看不清:
如:
\x00(null)\x01~\x1f(控制字符)strings 默认只显示 printable ASCII。
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
如果你是真的想看隐藏/不可见字符,用这些更合适:
xxd file
或
hexdump -C file
cat -A file.txt
会显示:
$ 行尾^I Tab^@ nullgrep -nP '[\x{200B}\x{200C}\x{200D}]' file.txt
strings能找“藏起来的字符串”,但不能直接显示“隐藏字符本身”
要看真正隐藏字符,用xxd/hexdump/cat -A
如果你有具体场景(比如:恶意样本 / 文本诡异 / 二进制分析),可以贴出来我帮你看用哪个最合适。