温馨提示×

Ubuntu Strings 如何分析

小樊
38
2026-07-09 22:41:44
栏目: 智能运维

在 Ubuntu(或其他 Linux 系统)中,分析二进制文件或数据中的可读字符串通常使用 strings 命令。以下是详细的使用方法和场景说明:


一、strings 命令是什么?

strings 用于从 二进制文件、镜像、内存转储、固件 等非文本文件中提取 可打印字符序列(通常是长度 ≥ 4 的字符串)。

常见用途:

  • 逆向分析
  • 取证分析
  • 调试程序
  • 查看程序中是否包含敏感信息(如 IP、路径、密码)

二、基本用法

1️⃣ 最简单用法

strings 文件名

示例:

strings /bin/ls

输出示例:

/lib64/ld-linux-x86-64.so.2
GNU C Library
Usage: %s [OPTION]... [FILE]...

2️⃣ 指定最小字符串长度

默认最小长度是 4,可以用 -n 修改:

strings -n 6 文件名

3️⃣ 显示字符串在文件中的偏移地址

strings -t x 文件名   # 十六进制
strings -t d 文件名   # 十进制
strings -t o 文件名   # 八进制

示例:

strings -t x /bin/ls

输出:

  1040 /lib64/ld-linux-x86-64.so.2
  1060 GNU C Library

4️⃣ 只扫描特定节区(ELF 文件)

strings -e l 文件名   # 16-bit little-endian UTF-16
strings -e b 文件名   # 16-bit big-endian
strings -e L 文件名   # 32-bit little-endian

5️⃣ 从内存或设备读取

strings /dev/sda | less
strings core.dump

⚠️ 注意:读取磁盘或内存文件需要权限。


三、结合其他命令分析

1️⃣ 查找特定字符串

strings test.bin | grep password

2️⃣ 统计字符串数量

strings test.bin | wc -l

3️⃣ 排序并去重

strings test.bin | sort | uniq

四、实战示例

示例 1:分析程序是否包含敏感信息

strings app | grep -i "password\|token\|key"

示例 2:分析未知二进制文件

file unknown_file
strings unknown_file | less

示例 3:分析固件或镜像

strings firmware.bin | grep "http\|ssh\|ftp"

五、常见问题

❓ strings 找不到字符串?

可能原因:

  • 字符串被加密 / 压缩
  • 使用非标准编码
  • 字符串长度小于默认阈值(加 -n 2

❓ strings 能分析什么文件?

✅ 支持:

  • ELF / PE / Mach-O
  • 内核模块
  • 固件
  • 内存 dump
  • 任意二进制数据

六、扩展工具(进阶)

工具 用途
objdump 反汇编
xxd 十六进制查看
binwalk 固件分析
radare2 逆向工程
ghidra 高级逆向

如果你有 具体文件类型或分析目标(如:恶意样本、固件、游戏程序、ELF 文件),可以直接告诉我,我可以给你 针对性的 strings 分析方案

0