strings 命令在 Linux 里“显示不全”通常不是真的丢了内容,而是它的默认行为和文件格式限制了输出。常见原因和对应解决办法如下:
strings 默认只输出连续可打印字符长度 ≥ 4 的字符串。
strings file
✅ 解决:降低最小长度
strings -n 1 file
strings 默认只扫描:
.text、.data、.rodata 等✅ 解决:扫描整个文件
strings -a file
# 或
strings --all file
strings 对 多字节字符(UTF-8、中文)支持很差,经常截断或忽略。
例如:
测试字符串123
可能只显示:
123
✅ 解决方式:
grep + iconv如果字符串在:
strings 是看不到的
✅ 解决:
binwalk file
foremost file
cat file | tr -c '[:print:]\n' '.'
strings -e l file # 16-bit little endian
strings -e b file # 16-bit big endian
hexdump -C file
xxd file
你可以先确认:
file yourfile
如果是:
strings -axxdstrings 显示不全,99% 是因为:默认只扫描部分段 + 最小长度限制 + 不支持中文
如果你愿意,可以把: