strings 默认情况下可以“看到”中文字符,但能不能搜到,取决于文件的编码和你的使用方式。
strings 能提取出来(因为 UTF-8 是字节流,包含可见 ASCII 范围外的字节)strings 默认不一定能正确识别,可能显示为乱码或搜不到strings 可能直接忽略strings 对中文“不友好”strings 的设计初衷是:
从二进制文件中提取可打印字符序列
默认规则:
echo "你好world" > test.txt
strings test.txt
输出:
你好world
echo "你好" | iconv -t GBK > gbk.txt
strings gbk.txt
可能输出乱码或空
strings -e S file.bin
常见参数:
-e S:16-bit UTF-16-e L:32-bit UTF-32-e B:16-bit Big Endianiconv 转码strings file | iconv -f GBK -t UTF-8
grep 直接搜grep -a "错误" binary_file
-a 把文件当文本处理
binwalkradare2 / Ghidrastrings + less(手动看)
strings能搜 UTF-8 中文,但不适合直接处理 GBK 或复杂中文编码,配合转码或 grep 更靠谱。
如果你有具体文件类型(ELF / exe / 日志 / 固件),我可以给你更精确的命令。