温馨提示×

linux strings能提取什么

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

strings 是 Linux 下一个常用命令,用来从二进制文件或非文本文件中提取可打印的字符串。下面按“能提取什么”来系统说明。


一、strings 能提取的内容

1. 二进制文件中的可读字符串

最常见用途,比如:

strings /bin/ls

可以提取出:

  • 函数名
  • 错误信息
  • 路径
  • 版权信息
  • 编译信息

2. 程序中的明文字符串

包括:

  • 日志信息
  • 调试输出
  • SQL 语句
  • URL
  • 配置项名称

例如:

Usage: ls [OPTION]...
/etc/passwd
https://example.com
SELECT * FROM users

3. 嵌入式或固件中的文本

对以下文件也有效:

  • 固件(router、IoT)
  • BIOS / UEFI
  • 镜像文件(.img、.bin)

4. 非文本文件中的隐藏信息

如:

  • 图片(EXIF、注释)
  • PDF
  • 压缩包
  • 数据库文件
strings image.jpg | grep password

5. 恶意软件分析中的线索

  • 域名
  • IP
  • 命令与控制(C2)地址
  • 加密字符串片段

二、strings 提取的“字符串”是什么

默认提取条件:

  • 长度 ≥ 4 的可打印字符
  • 只包含:
    • 字母
    • 数字
    • 常见符号(如 / . : - _)

可通过参数调整:

strings -n 6 file      # 最小长度 6
strings -e l file      # 16-bit little endian
strings -e b file      # 16-bit big endian

三、常见使用场景

1. 分析未知程序

strings unknown.bin

2. 查找敏感信息

strings app | grep -i password

3. 安全/逆向分析

strings malware.exe | less

4. 提取文件路径

strings binary | grep "/"

四、strings 不能提取什么

  • 加密内容(只能看到密文)
  • 压缩后未解压的数据
  • 纯数值、非字符串数据
  • Unicode(需指定编码)

五、总结一句话

strings 能从任意文件中提取“人类可读的字符序列”,尤其适合分析二进制、固件和安全样本。

如果你有具体文件类型或分析目的(比如逆向、取证、CTF),我可以给你更针对性的用法。

0 踩