在 Linux 中,strings 是一个命令行工具,用来从一个二进制文件(或任意文件)中提取可打印的字符串。
strings 输出的含义strings 的输出,本质上就是:
文件中连续的可打印字符序列(通常是 ASCII 或 Unicode 文本)
例如,对一个可执行文件运行:
strings /bin/ls
你可能会看到:
Usage: ls [OPTION]... [FILE]...
%s: invalid option -- '%c'
GNU coreutils
...
这些内容就是 嵌在二进制文件中的字符串。
二进制文件(如 .exe、.so、ELF 可执行文件)中通常包含:
printf("Hello World\n");
strings 的常见用途strings unknown_binary | less
查看程序可能做什么、包含哪些路径或 URL。
strings /bin/ls | grep -i version
有时 strings 比 file 更直观。
strings 默认规则(重要)默认情况下,strings:
例如:
\x00\x00Hello\x00\x00World
可能输出:
Hello
World
strings -n 6 file # 最少 6 个字符
strings -a file # 扫描整个文件(不只数据段)
strings -e l file # 16-bit little-endian Unicode
strings -t x file # 显示字符串偏移(十六进制)
strings 不能恢复源代码$ echo -e "abc\x00hello\x00world" > test.bin
$ strings test.bin
abc
hello
world
如果你愿意,我可以:
strings 输出你可以直接贴一段输出。