温馨提示×

linux strings怎么过滤

小樊
45
2026-07-18 11:42:46
栏目: 智能运维

在 Linux 里,strings 命令通常用来从二进制文件或数据中抽取可打印的字符串。如果你说的“过滤”是指按条件筛选、排除、只保留某些内容,常见做法如下:


一、基本用法

strings file

二、常见过滤方式

1️⃣ 按字符串长度过滤(最常用)

只显示 长度 ≥ n 的字符串:

strings -n 6 file

只显示长度 ≥ 6 的字符串


2️⃣ 用 grep 过滤内容

只显示包含某关键字的字符串

strings file | grep "main"

忽略大小写

strings file | grep -i "error"

使用正则

strings file | grep -E "[0-9]{4}-[0-9]{2}-[0-9]{2}"

3️⃣ 排除某些字符串

strings file | grep -v "debug"

4️⃣ 只显示以某字符开头的字符串

strings file | grep "^http"

5️⃣ 只显示以某字符结尾的字符串

strings file | grep "\.so$"

6️⃣ 去重

strings file | sort -u

7️⃣ 指定扫描范围(高级)

strings -t x file        # 显示字符串偏移(十六进制)
strings -t d file        # 显示字符串偏移(十进制)

8️⃣ 从特定段中提取(ELF 文件)

strings -e l file        # little-endian UTF-16
strings -e b file        # big-endian UTF-16

三、常见组合示例

从二进制中找 URL

strings binary | grep -E "https?://"

从内存 dump 中找密码相关

strings dump.bin | grep -i "password"

查找可疑字符串

strings file | grep -E "(shell|exec|system|/bin/sh)"

四、常见误区

strings 不能解密
❌ 只能提取已存在的数据
✅ 适合逆向、取证、排查配置、分析二进制


如果你有具体场景(比如:

  • 分析 ELF
  • 提取固件字符串
  • 过滤中文 / UTF-16
  • 从内存或网络包中提取)

可以直接说,我可以给你更精确的命令。

0