温馨提示×

怎样用linux strings查字符串

小樊
43
2026-09-23 18:44:02
栏目: 智能运维

在 Linux 里,strings 命令用来从一个二进制文件(或任意文件)中提取可打印的字符串,常用于分析程序、排查日志、逆向、取证等。

下面从基本用法 → 常用参数 → 实战示例给你讲清楚。


一、基本用法

strings 文件名

例如:

strings a.out

会把 a.out 里所有长度 ≥ 4 的可打印字符串打印出来。


二、常用参数(很重要)

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

strings -n 6 文件名

只显示 长度 ≥ 6 的字符串(默认是 4)


2️⃣ 只查某个区间(偏移)

strings -n 4 -t x 文件名

-t x:以 十六进制 显示偏移

其他:

  • -t d:十进制
  • -t o:八进制

示例:

strings -t x a.out

输出:

  1a3f /lib64/ld-linux-x86-64.so.2
  1a5b main

3️⃣ 搜索包含某关键词的字符串(配合 grep)

strings a.out | grep password

或:

strings -n 6 a.out | grep -i error

4️⃣ 从特定段(section)提取(ELF 文件)

strings -e l 文件名
  • -e s:7-bit
  • -e b:16-bit BE
  • -e l:16-bit LE
  • -e B:32-bit BE
  • -e L:32-bit LE

一般默认即可,逆向时才用。


5️⃣ 从多个文件提取

strings file1 file2 file3

或从目录:

strings /usr/bin/*

三、实战示例

✅ 示例 1:看程序里有没有硬编码密码

strings login | grep -i pass

✅ 示例 2:定位字符串在文件中的位置

strings -t x binary | grep "TODO"

然后用:

objdump -s -j .rodata binary

配合分析


✅ 示例 3:分析未知二进制

strings unknown_bin | less

✅ 示例 4:从 core dump 里找信息

strings core | grep -i segfault

四、常见坑

❌ strings 看不到加密/压缩内容 ✅ 只显示“明文可打印字符”

❌ 不能反编译 ✅ 只是“粗看”


五、组合拳(很实用)

strings -n 6 binary | grep -E "http|key|token|pass"

或:

strings -t x binary | grep -i debug

如果你愿意,可以告诉我:

  • 你是分析 ELF / exe / 固件 / 日志?
  • 是想找 密码 / 报错 / 函数名 / 配置?

我可以直接给你针对性命令。

0 踩