温馨提示×

debian strings怎么过滤输出

小樊
35
2026-10-04 02:54:12
栏目: 智能运维

在 Debian(以及其它 Linux 发行版)里,strings 命令用于从二进制文件、core 文件或对象文件中提取可打印字符串。
所谓“过滤输出”,通常是指在 strings 结果里只显示想要的字符串,常见做法如下。


1. 用 grep 过滤(最常用)

strings file | grep "keyword"

只显示包含 keyword 的字符串。

strings /bin/ls | grep "usage"

忽略大小写:

strings file | grep -i "error"

正则匹配:

strings file | grep -E "error|warning|fail"

2. 用 grep -v 反向过滤(排除)

strings file | grep -v "debug"

排除包含 debug 的行。


3. 限制字符串长度(减少噪音)

strings -n 6 file

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

结合 grep:

strings -n 8 file | grep "config"

4. 指定扫描区域(更精准)

只扫描数据段:

strings -d file

只扫描代码段:

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

5. 配合 awk / sed 做复杂过滤

只显示第 2 列之后的内容:

strings file | awk '{print $2}'

删除前后空白:

strings file | sed 's/^[ \t]*//;s/[ \t]*$//'

6. 实际综合示例

从二进制中找可能的 URL:

strings -n 6 /usr/bin/curl | grep -E "https?://"

从程序中找版本信息:

strings /usr/bin/vim | grep -i "version"

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

  • 分析恶意样本
  • 提取版本号
  • 查找硬编码密码
  • 从 core 文件中找信息

可以告诉我,我可以直接给你对应的 strings 过滤命令。

0 踩