温馨提示×

strings能分析二进制吗

小樊
33
2026-08-28 16:51:11
栏目: 编程语言

不能直接,也不适合。

strings 工具设计初衷是从二进制文件中提取可打印的字符串,而不是“分析二进制含义”。


什么是 strings 能做的

strings 只能做一件事:

从二进制数据中找出连续的可打印字符序列

例如:

strings a.out

可能输出:

/lib64/ld-linux-x86-64.so.2
Hello, world!
printf

这类信息来自:

  • ELF 字符串表
  • 代码中的字符串常量
  • 数据段中碰巧连续的可打印字节

strings 不能做什么 ❌

  • ❌ 反汇编(看不到汇编指令)
  • ❌ 分析文件格式结构(ELF / PE / Mach-O)
  • ❌ 理解代码逻辑
  • ❌ 提取函数、符号含义
  • ❌ 分析加密/压缩内容
  • ❌ 判断“这是什么程序在干什么”

它本质上是**“盲扫文本”**,不是解析器。


二进制分析正确工具对照表

目的 推荐工具
提取字符串 strings
查看文件格式 file, readelf, objdump -f
反汇编 objdump -d, radare2, Ghidra, IDA
符号表 nm, readelf -s
动态分析 gdb, strace, ltrace
固件/原始二进制 binwalk, hexdump, xxd

常见误区

❌ “用 strings 分析病毒”
→ 只能看到提示性字符串,远远不够

❌ “strings 等于逆向”
→ 差得很远

✅ “strings 是逆向的第一步”
→ 这个说法是合理的


一句话总结

strings 只能“看到二进制里的文字”,不能“分析二进制”。

如果你愿意,可以告诉我:

  • 你在分析什么文件(ELF / PE / 固件 / 恶意样本)
  • 想达到什么目的

我可以给你一套更合适的分析方案

0