在 Linux 下,strings 和 grep 是两个用途不同的命令,虽然它们经常配合使用,但本质区别很明显。
strings 是做什么的?strings:从二进制文件中提取“可打印字符串”
.so、核心转储等)strings /bin/ls
输出类似:
Usage: ls [OPTION]... [FILE]...
GNU coreutils
...
grep 是做什么的?grep:在文本中搜索匹配的内容
grep "error" app.log
| 对比项 | strings | grep |
|---|---|---|
| 处理对象 | 二进制 / 文本 | 文本 |
| 功能 | 提取可打印字符串 | 搜索匹配内容 |
| 是否理解二进制 | ✅ 是 | ❌ 否 |
| 是否搜索关键字 | ❌ 不直接 | ✅ 是 |
| 典型场景 | 分析程序 | 查日志 |
strings binary_file | grep "password"
含义:
strings 从二进制中提取字符串grep 再从中筛选关键字strings:把二进制“变成”可读字符串grep:在文本里“找”你想要的内容如果你有具体使用场景(比如分析程序、查日志、逆向),我可以给你更针对性的用法。