温馨提示×

linux strings怎样配合grep用

小樊
39
2026-09-17 15:41:58
栏目: 智能运维

在 Linux 里,strings 和 grep 经常一起用,用来从二进制文件、core 文件、日志等“非纯文本”里提取可打印字符串,并按关键字过滤。

下面按常见场景给你讲清楚。


一、基本配合方式

1️⃣ 从二进制中找关键字

strings /bin/ls | grep ssh

含义:

  • strings:提取 /bin/ls 中所有可打印字符串
  • grep ssh:只显示包含 ssh 的行

2️⃣ 忽略大小写

strings app | grep -i error

3️⃣ 显示行号(方便定位)

strings -n 6 binary | grep -n password
  • -n 6:只显示长度 ≥ 6 的字符串(过滤噪音)
  • -n:grep 显示行号

二、直接 grep 多个关键字

或关系(任意一个匹配)

strings binary | grep -E 'user|pass|token'

与关系(同时包含)

strings binary | grep user | grep pass

三、从 core / 内存 / 网络数据里找东西

core dump

strings core.1234 | grep -i "segmentation"

网络抓包数据

strings capture.pcap | grep http

四、配合管道和文件

输出到文件再分析

strings binary > strings.txt
grep -n "config" strings.txt

多个文件一起

strings file1 file2 | grep key

五、strings 常用参数(配合 grep 很有用)

参数 作用
-n N 只显示长度 ≥ N 的字符串
-a 扫描整个文件(默认可能跳过某些段)
-e 指定字符编码(如 s l b)
-t x 显示字符串在文件中的偏移(十六进制)

示例:

strings -a -n 8 binary | grep -i license

六、实战例子

找出二进制里硬编码的密码

strings /usr/bin/app | grep -i pass

分析可疑程序

strings malware.bin | grep -E 'http|cmd|exec|sh'

看程序调用了哪些函数名

strings app | grep -E '^__|printf|socket'

七、进阶(可选)

用 grep -A/-B 看上下文

strings binary | grep -A3 -B3 token

配合 less

strings binary | grep -i error | less

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

  • ✅ 你是分析 二进制 / 日志 / core / 内存?
  • ✅ 想找 密码 / 函数名 / 网络连接 / 配置?

我可以给你更精准的命令模板。

0 踩