温馨提示×

linux strings能查什么内容

小樊
47
2026-09-14 14:35:29
栏目: 智能运维

在 Linux 中,strings 是一个常用命令,用来从一个文件(尤其是二进制文件)中提取可打印的字符串。它常被用于分析程序、排查问题或做安全/逆向分析。

下面按“能查什么”来系统说明:


一、strings 能查到的内容

1️⃣ 二进制文件中的字符串

包括:

  • 程序里的 硬编码字符串
  • 日志信息、提示语
  • 错误信息(error, failed 等)
  • 文件路径
  • URL、IP 地址
  • 配置项名称

示例:

strings /bin/ls

可能看到:

usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file ...]

2️⃣ 程序中看到的“明文信息”

例如:

  • 用户名、数据库名(如果写死在代码里)
  • 密钥、token(如果没加密)
  • SQL 语句
  • 接口地址

⚠️ 注意:如果代码混淆或加密,strings 可能看不到有用内容。


3️⃣ 文件格式相关的字符串

可判断文件类型或用途:

  • ELF(Linux 可执行文件)
  • PNG / JPEG 标识
  • 压缩包结构
  • 脚本语言痕迹(Python、Java 等)

示例:

strings app.bin | grep -i "python"

4️⃣ 调试信息和符号(如果有)

如果程序未 strip:

  • 函数名
  • 变量名
  • 源文件名
strings test | grep main

5️⃣ 日志、配置、资源内容

对以下文件也有效:

  • .so 动态库
  • 固件(firmware)
  • 内存 dump
  • 网络抓包导出的文件

二、strings 查不到的内容

❌ 以下内容通常查不到:

  • 运行时才生成的字符串
  • 加密/编码后的内容(如 Base64 需进一步解码)
  • 被 strip 掉的符号
  • 压缩或加密段中的内容

三、常用参数

strings -n 6 file        # 只显示长度≥6的字符串
strings -a file          # 扫描整个文件
strings -e l file        # 指定字符编码(l=16-bit little endian)
strings file | grep xxx  # 配合 grep 使用

四、典型使用场景

✅ 判断未知二进制是干什么的
✅ 查程序里是否泄露敏感信息
✅ 分析病毒/木马
✅ 定位程序崩溃相关提示
✅ CTF / 逆向初探


如果你愿意,我可以:

  • 给你 实战示例
  • strings + grep 的排查技巧
  • 或结合 具体文件类型(如 ELF、固件、exe)说明

0