温馨提示×

ubuntu strings支持哪些文件

小樊
37
2026-09-12 08:55:30
栏目: 智能运维

strings 是 Ubuntu(以及大多数 Linux 发行版)中 binutils 软件包提供的一个命令行工具,用来从文件中提取可打印的字符串(通常是 ASCII / 可用字符序列)。

下面按「支持的文件类型」和「使用限制」说明。


一、strings 本质上支持什么文件?

理论上:几乎“所有文件”都能用

strings 不依赖文件格式,它做的是:

按顺序扫描文件的字节,把连续的“可打印字符”输出出来

所以以下文件都可以用:

1. 二进制可执行文件

  • ELF(Ubuntu 默认格式)
    • 可执行文件(/bin/ls)
    • 动态库(.so)
    • 静态库(.a)
  • 内核模块(.ko)
  • 脚本编译后的文件

2. 脚本与文本类文件

  • Shell 脚本(.sh)
  • Python 脚本(.py)
  • 配置文件(.conf, .ini)
  • 日志文件

3. 数据文件

  • 数据库文件(SQLite、MySQL 数据文件)
  • 压缩包(.zip, .tar, .gz)
  • 镜像文件(.img, .iso)
  • 内存 dump 文件

4. 专有 / 特殊格式

  • Windows 程序(.exe, .dll)
  • macOS Mach-O
  • Android .dex, .apk
  • 固件(router / IoT)

二、strings 对“非文本”文件的处理

strings 不会解析文件结构,例如:

  • 不会理解 PNG / JPEG 的格式
  • 不会解压 ZIP
  • 不会执行代码

它只是“扫字节”。

✅ 所以你能从:

  • 图片里找到隐藏的文字
  • 固件里找到 URL、密码提示
  • 可执行文件里找到函数名、日志字符串

三、常用参数(Ubuntu)

strings file
strings -n 6 file        # 最少 6 个连续字符
strings -e l file        # 16-bit little endian
strings -e b file        # 16-bit big endian
strings -t x file        # 显示偏移(十六进制)

四、不支持 / 不推荐的情况

情况 说明
加密内容 输出无意义
高度压缩数据 几乎无字符串
纯二进制流 可能只有少量输出
非常大的文件 可能很慢

五、典型用途

  • 逆向分析
  • 取证(CTF、安全)
  • 查看程序中硬编码信息
  • 排查配置文件或日志问题

如果你有 具体文件类型(比如 PNG、APK、SQLite、ELF),我可以告诉你 strings 能挖出什么、挖不出什么。

0 踩