温馨提示×

如何过滤ubuntu strings内容

小樊
43
2026-09-21 17:08:57
栏目: 智能运维

在 Ubuntu(或其他 Linux)系统中,strings 命令常用于从二进制文件、core 文件或数据文件中提取可打印字符串。如果你想要“过滤 strings 的内容”,通常有以下几种常见需求与做法:


一、基本用法

strings filename

二、按字符串长度过滤(常用)

默认 strings 只显示长度 ≥ 4 的字符串,你可以自定义:

# 只显示长度 ≥ 6 的字符串
strings -n 6 filename

三、结合 grep 过滤关键字

这是最常用的过滤方式。

# 查找包含 "error" 的字符串
strings filename | grep error

# 忽略大小写
strings filename | grep -i error

# 正则匹配
strings filename | grep -E "version|build"

四、排除某些内容(反向过滤)

# 不包含 "debug"
strings filename | grep -v debug

五、只提取特定段(section)

# 只从 .rodata 段提取
strings -e s filename

常见编码选项:

  • -e s:7-bit 字符串
  • -e b:16-bit
  • -e l:32-bit
  • -e B / -e L:大端 / 小端

六、输出到文件再处理

strings binary > strings.txt
grep "password" strings.txt

七、结合 awk / sed 精细过滤

# 只显示以 http 开头的字符串
strings filename | awk '/^http/'

# 去掉空行
strings filename | sed '/^$/d'

八、典型实战例子

1️⃣ 从二进制中找版本号

strings /bin/ls | grep -i version

2️⃣ 从固件中提取 URL

strings firmware.bin | grep -E "https?://"

3️⃣ 分析恶意样本字符串

strings malware | grep -i "cmd\|exec\|sh"

如果你有具体场景(比如:过滤中文字符、过滤某个段、分析某个程序),可以告诉我,我可以给你更精确的命令。

0 踩