温馨提示×

ubuntu strings能提取什么

小樊
51
2026-09-03 09:37:56
栏目: 智能运维

在 Ubuntu(以及其它 Linux 发行版)中,strings 是一个命令行工具,通常来自 binutils 包。它的主要作用是:从一个文件(尤其是二进制文件)中提取可打印的字符串。


一、strings 能提取什么

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

比如:

  • 可执行文件(ELF)
  • 动态库(.so)
  • 内核模块(.ko)
  • 固件、镜像文件

示例:

strings /bin/ls

可以提取出:

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

2. 文本和配置残留

即使不是纯文本文件,也可能包含:

  • 文件路径(如 /etc/passwd)
  • URL
  • 用户名、主机名
  • SQL 语句
  • 调试日志

3. 程序中“写死”的内容

例如:

printf("Failed to open config file\n");

这段字符串会被提取出来。


4. 非文本文件中的可读内容

  • .png、.pdf、.docx(部分)
  • 内存镜像
  • 磁盘镜像
  • 网络抓包文件

二、strings 不能做什么(限制)

❌ 不能提取:

  • 加密内容
  • 压缩后未解压的数据
  • 只存在于运行时的内容(除非 dump 内存)
  • 结构体、逻辑、算法

三、常用参数(Ubuntu)

strings file
strings -n 6 file        # 只显示长度 ≥ 6 的字符串
strings -a file          # 扫描整个文件(不只数据段)
strings -e l file        # 指定编码(l=16-bit little endian)
strings -t x file        # 显示字符串偏移(十六进制)

四、实际用途示例

1. 分析未知程序

strings suspicious_bin | grep http

2. 查看编译信息

strings binary | grep GCC

3. 取证分析

strings disk.img | grep password

五、安装方式(一般已自带)

sudo apt update
sudo apt install binutils

如果你愿意,我可以:

  • 给你一个 实战例子
  • 教你 结合 grep / objdump 使用
  • 或说明 strings 在逆向/安全分析中的用法

0 踩