温馨提示×

为什么要用linux strings

小樊
46
2026-09-20 18:47:23
栏目: 智能运维

strings 是 Linux 下一个非常常用的命令行工具,主要作用是从一个二进制文件或任意文件中提取可打印的字符串。下面从“为什么要用它”和“典型场景”来说。


一、为什么要用 strings

1. 查看二进制文件里的“人类可读内容”

二进制文件(如可执行程序、.so、核心转储、固件)里大量是机器码,但常常混杂着:

  • 文件路径
  • 函数名
  • 错误信息
  • URL、IP
  • 配置项
  • 调试信息

strings 能把这些** printable 的字符串**提取出来,方便人读。

strings /bin/ls

2. 逆向 / 安全分析

在安全研究中非常常见:

  • 查恶意软件里的:
    • C2 服务器地址
    • 加密密钥
    • 命令字符串
  • 看程序是否包含:
    • 硬编码密码
    • 敏感路径
  • 判断程序用途(即使没有源码)
strings malware.bin | grep -i "http"

3. 没有源码时“看程序干了什么”

当你只有 .o、.a、.so、可执行文件,没有源代码时:

  • 看导出的符号
  • 看日志格式
  • 看报错信息

4. 调试和排错

程序崩溃但没日志时:

  • core dump 里可能有错误信息
  • strings core 可能看到线索

5. 固件 / 嵌入式分析

路由器、IoT 设备固件通常是二进制:

strings firmware.bin

能快速看到:

  • 系统命令
  • 默认账号
  • 后台接口

二、常用参数(补充说明)

strings -n 6 file        # 只显示长度 ≥ 6 的字符串
strings -e l file        # 指定字符编码(little-endian)
strings -a file          # 扫描整个文件(不只数据段)

三、一句话总结

用 strings,是因为它能在“看不懂的二进制”里,快速找到“人能看懂的信息”。

如果你愿意,我也可以:

  • 给你真实示例输出
  • 对比 strings vs objdump
  • 讲在 CTF / 逆向中的实战用法

0 踩