温馨提示×

linux strings能提取啥信息

小樊
40
2026-09-02 10:38:02
栏目: 智能运维

在 Linux 下,strings 是一个常用命令,用来从一个二进制文件(或任意文件)中提取出可打印的字符串(通常是连续的 ASCII / Unicode 字符)。它本身不解析文件结构,只是“扫字符”。


一、strings 能提取哪些信息

1️⃣ 程序中嵌入的明文信息

  • 文件路径
    /etc/passwd
    /var/log/app.log
    
  • 配置项、参数名
    debug=true
    max_connections=100
    
  • 错误提示、日志内容
    Failed to open file
    Segmentation fault
    

2️⃣ 函数名 / 符号信息(未 strip 时)

  • C/C++ 函数名
    main
    printf
    do_work
    
  • 类名、方法名(C++/Rust/Go 常带符号)

3️⃣ 版本与编译信息

  • 编译器版本
    GCC: (Ubuntu 9.4.0)
    
  • 构建时间、路径
    build on 2024-01-01
    /home/user/project/src/main.c
    

4️⃣ 第三方库 / 依赖线索

  • OpenSSL、libcurl、zlib 等字样
  • 协议关键字
    HTTP/1.1
    TLSv1.2
    

5️⃣ 安全相关信息(审计常用)

  • 硬编码的密码、token(风险点)
  • SQL 语句
  • API URL
  • 加密算法名(AES、RSA)

6️⃣ 文件格式或魔数线索

虽然不是主要用途,但能看到:

PK(zip)
%PDF(pdf)
ELF(可执行文件)

二、strings 提取不到什么

❌ 不解析结构

  • 看不到函数调用关系
  • 看不到变量值(除非是字符串常量)

❌ 加密 / 压缩内容无效

  • 加密后的数据通常是乱码
  • 压缩块里基本提不出有用信息

❌ 已 strip 的二进制

  • 函数名、符号会被去掉

三、常见用法示例

基础用法

strings binary_file

只看长度 ≥ 8 的字符串

strings -n 8 binary_file

显示字符串在文件中的偏移

strings -t x binary_file   # 十六进制
strings -t d binary_file   # 十进制

提取特定关键字

strings binary | grep -i password

分析可疑程序

strings malware.bin | less

四、典型使用场景

✅ 逆向分析初步侦察
✅ 安全审计(找硬编码密钥)
✅ 确认二进制来源 / 编译器
✅ CTF / 取证分析
✅ 快速判断未知文件类型


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

  • 你是 安全分析 / 开发 / 运维 / CTF 场景?
  • 是否在分析某个具体文件?

我可以给你更针对性的用法。

0