strings 是 Linux 下一个常用的命令行工具,主要用途是:
从二进制文件(或任意文件)中提取可打印的字符串。
下面从“为什么要用它”和“常见使用场景”来解释。
strings 是什么?strings 会扫描文件内容,找出所有长度大于等于某个阈值(默认 4)的连续可打印字符序列,并以文本形式输出。
strings /bin/ls
输出类似:
Usage: %s [OPTION]... [FILE]...
GNU coreutils
ls
strings?Linux 中很多程序是 编译后的二进制文件,你不能直接 cat 查看内容。
✅ strings 可以帮你:
例子:
strings some_binary
你可能会看到:
安全工程师经常用它来分析可疑程序。
✅ 常见用途:
strings malware_sample | grep -E "http|shell|exec|ssh"
在无法反汇编的情况下,strings 是最快速的静态分析工具。
✅ 可发现:
strings 不只用于 ELF 程序,也适用于:
strings core_dump | less
系统出问题或程序崩溃时,可以:
strings [选项] 文件
| 参数 | 作用 |
|---|---|
-n |
指定最小字符串长度 |
-a |
扫描整个文件(不仅仅是 data 段) |
-t x |
显示字符串地址(十六进制) |
-e |
指定字符编码(UTF-16、EBCDIC 等) |
strings -n 6 binary
strings -a binary
strings -t x binary
❌ 不适合:
它在这些场景下信息太“碎片”。
strings用来从二进制或未知格式文件中,快速提取人类可读的字符串,常用于分析、调试、安全和取证。
如果你愿意,我也可以:
strings 分析真实程序strings 与 objdump / readelf