温馨提示×

如何过滤ubuntu strings结果

小樊
36
2026-09-06 13:51:52
栏目: 智能运维

在 Ubuntu(Linux)里,strings 命令用于从二进制文件中提取可打印字符串。常见的“过滤 strings 结果”方式有以下几种,按使用场景由简单到高级说明:


1️⃣ 用 grep 过滤关键字

最常见方式,结合 grep 搜索特定字符串。

strings binary_file | grep "error"

忽略大小写:

strings binary_file | grep -i "error"

显示行号:

strings binary_file | grep -n "main"

2️⃣ 使用正则表达式

例如只显示以 http 开头的字符串:

strings binary_file | grep '^http'

或包含版本号:

strings binary_file | grep -E '[0-9]+\.[0-9]+'

3️⃣ 限制字符串最小长度(strings 自带)

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

strings -n 6 binary_file

4️⃣ 指定字符编码

某些二进制使用 UTF-16(Windows 常见):

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

5️⃣ 按偏移地址过滤(高级)

显示字符串及其在文件中的偏移:

strings -t x binary_file

结合 grep:

strings -t x binary_file | grep "config"

6️⃣ 排序 / 去重

strings binary_file | sort | uniq

只显示重复字符串:

strings binary_file | sort | uniq -d

7️⃣ 输出到文件再分析

strings binary_file > strings.txt
grep "password" strings.txt

8️⃣ 实战示例(常见)

提取二进制中的 URL:

strings app | grep -E 'https?://'

提取可能的函数名:

strings -n 5 app | grep -E '^[a-z_]+$'

如果你有 具体目标(比如逆向分析、日志提取、去噪、某种文件格式),可以告诉我,我可以给你更精确的命令。

0