strings 是 Linux 下一个非常常用的命令行工具,用来从一个文件(尤其是非文本文件)中提取可打印的字符串。你问“为何用 Linux strings 查字符串”,可以从用途、原理和典型场景来理解。
strings 查字符串?很多文件并不是纯文本,例如:
.so / .dll)这些文件里混杂着:
strings 可以帮你把里面“像字符串的东西”挖出来。
不需要反汇编、不需要运行程序,就能看到:
例如:
strings app | grep -i password
在安全领域非常常见:
例如:
strings malware.bin | grep http
比如程序崩溃,但日志很少:
strings program | less
可能看到:
failed to open config file: %s
/dev/sda1
/etc/app/config.yaml
对调试很有帮助。
strings 的工作原理(简单说)strings 默认会扫描文件,找出连续的可打印字符序列(通常是 ASCII),长度达到一定阈值(默认 4)就输出。
示例:
strings example.bin
可选参数:
strings -n 6 file # 最少 6 个字符
strings -e l file # 16-bit little endian
strings -a file # 扫描整个文件
| 场景 | 用法 |
|---|---|
| 看程序里写了啥 | strings a.out |
| 找密码/路径 | strings a.out | grep pass |
| 分析未知文件 | strings unknown.bin |
| 查固件内容 | strings firmware.img |
| 安全取证 | strings dump.mem | grep -i token |
用
strings查字符串,是因为很多“字符串”藏在二进制里,肉眼和文本编辑器看不到,而strings能快速把它们提取出来,用于分析、调试和安全审查。
如果你愿意,我可以:
strings 实战例子strings vs grep / hexdumpstrings 在逆向或 CTF 里的用法