温馨提示×

Ubuntu strings如何读取

小樊
41
2026-07-21 16:07:33
栏目: 智能运维

在 Ubuntu(以及其他 Linux 系统)中,strings 是一个命令行工具,用于从二进制文件、可执行文件、库文件或任意文件中提取可打印的字符串
下面从安装、基本用法、常见场景、常用参数几个方面讲清楚。


一、strings 是什么?

strings 会扫描文件中的 可打印字符序列(通常是 ASCII/Unicode),常用于:

  • 分析二进制文件
  • 查看程序中是否包含可读文本、路径、URL、调试信息
  • 逆向分析 / 取证 / 调试

二、是否安装 strings?

大多数 Ubuntu 已预装。
如果没有,可以安装:

sudo apt update
sudo apt install binutils

三、基本用法

1️⃣ 从二进制文件中读取字符串

strings /bin/ls

输出示例:

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

2️⃣ 从任意文件中读取

strings example.bin

3️⃣ 指定最小字符串长度(默认是 4)

strings -n 6 binary_file

只显示 长度 ≥ 6 的字符串。


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

strings -t x binary_file

或十进制:

strings -t d binary_file

示例:

0x1a3f /usr/lib
0x1a50 main

5️⃣ 从特定 section 读取(ELF 文件)

strings -e l binary_file

-e 指定编码:

  • s:7-bit ASCII(默认)
  • l:16-bit little-endian
  • b:16-bit big-endian
  • L:32-bit little-endian

6️⃣ 只读取 .rodata 等 section(高级)

objdump -s -j .rodata binary_file

或结合 strings

objdump -s -j .rodata binary_file | strings

四、常见实用场景

✅ 查看程序是否包含 URL / IP

strings binary | grep -E 'http|https|192\.168'

✅ 查看是否包含调试信息

strings binary | grep -i debug

✅ 分析恶意程序或未知 ELF

strings suspicious_file | less

✅ 查看依赖路径

strings binary | grep '/lib'

五、常用参数速查表

参数 说明
-n num 最小字符串长度
-t x 显示十六进制偏移
-t d 显示十进制偏移
-e encoding 指定字符编码
-o 显示偏移(旧版)
-a 扫描整个文件(默认)

六、示例:完整实战

strings -n 6 -t x /usr/bin/ls | less

含义:

  • 最小长度 6
  • 显示字符串在文件中的十六进制位置
  • 分页查看

七、注意事项

  • strings 不会解密加密内容
  • 只能提取“以当前字符集可打印”的内容
  • 对混淆或加壳程序效果有限

如果你有 具体文件类型(如 ELF、PE、固件、core dump) 或想 分析特定内容(如密码、路径、通信地址),可以告诉我,我可以给你更精确的命令。

0