温馨提示×

linux strings怎么用

小樊
42
2026-07-07 04:13:53
栏目: 智能运维

strings 是 Linux 下从二进制文件、镜像、内存 dump 等中提取可打印字符串的工具,常用于逆向、排查、取证等场景。下面从常用用法到实战示例系统说明。


一、strings 是什么?

strings 会扫描文件中的 可打印字符序列(默认长度 ≥ 4),常用于:

  • 查看 ELF / 二进制文件中的字符串
  • 分析 core dump、内存镜像
  • 查找程序里硬编码的路径、URL、密码(如果有)

二、基本用法

strings 文件名

示例:

strings a.out

输出示例:

/lib64/ld-linux-x86-64.so.2
printf
Hello World

三、常用参数(重点)

1️⃣ 指定最小字符串长度(-n

strings -n 6 a.out

只显示 长度 ≥ 6 的字符串(过滤碎字符)


2️⃣ 显示字符串在文件中的偏移(-t

strings -t x a.out     # 十六进制
strings -t d a.out     # 十进制
strings -t o a.out     # 八进制

示例:

strings -t x a.out

输出:

0x1234 /lib64/ld-linux-x86-64.so.2
0x2000 Hello World

3️⃣ 指定扫描范围(文件偏移)

strings -d a.out        # 只扫描数据段(重点)

或按偏移:

strings -n 4 -e l a.out

4️⃣ 指定字符编码(-e

-e s   # 7-bit ASCII
-e l   # 16-bit little-endian
-e b   # 16-bit big-endian
-e L   # 32-bit little-endian
-e B   # 32-bit big-endian

例如:

strings -e l a.out

5️⃣ 递归扫描目录

strings -n 6 *

或:

find . -type f -exec strings -n 6 {} \;

四、实战示例

✅ 1. 从二进制中找 URL / IP

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

✅ 2. 从 core dump 中找线索

strings core.1234 | less

✅ 3. 从可执行文件中找是否包含密码

strings a.out | grep -i pass

⚠️ 注意:这只是辅助分析,不是安全审计工具


✅ 4. 查看 ELF 中的字符串

strings /bin/ls

✅ 5. 结合 less / grep

strings a.out | less
strings a.out | grep -i error

五、常见使用场景总结

场景 用法
分析病毒/木马 strings sample
逆向分析 strings -t x binary
故障排查 strings core
取证分析 strings mem.dump
快速查看 strings file | less

六、注意事项

  • 不能解密、反编译
  • ❌ 字符串可能被 压缩 / 加密 / 混淆
  • ✅ 只是“看得见”的字符

如果你愿意,我可以结合 具体文件类型(ELF / 固件 / core dump / pcap) 给你更精确的用法示例。

0