不能直接,也不适合。
strings 工具设计初衷是从二进制文件中提取可打印的字符串,而不是“分析二进制含义”。
strings 能做的strings 只能做一件事:
从二进制数据中找出连续的可打印字符序列
例如:
strings a.out
可能输出:
/lib64/ld-linux-x86-64.so.2
Hello, world!
printf
这类信息来自:
strings 不能做什么 ❌它本质上是**“盲扫文本”**,不是解析器。
| 目的 | 推荐工具 |
|---|---|
| 提取字符串 | strings ✅ |
| 查看文件格式 | file, readelf, objdump -f |
| 反汇编 | objdump -d, radare2, Ghidra, IDA |
| 符号表 | nm, readelf -s |
| 动态分析 | gdb, strace, ltrace |
| 固件/原始二进制 | binwalk, hexdump, xxd |
❌ “用 strings 分析病毒”
→ 只能看到提示性字符串,远远不够
❌ “strings 等于逆向”
→ 差得很远
✅ “strings 是逆向的第一步”
→ 这个说法是合理的
strings 只能“看到二进制里的文字”,不能“分析二进制”。
如果你愿意,可以告诉我:
我可以给你一套更合适的分析方案。