温馨提示×

linux strings如何结合grep

小樊
48
2026-09-29 14:48:47
栏目: 智能运维

在 Linux 中,strings 和 grep 经常结合使用,用来从二进制文件或数据文件中提取可读字符串,并筛选感兴趣的内容。

下面按常见用法一步步说明。


一、基本结合方式(管道)

最直接的方式是用管道:

strings 文件名 | grep "关键字"

示例:

strings app.bin | grep "password"

含义:

  • strings:从 app.bin 中提取可打印字符串
  • grep:只显示包含 password 的行

二、忽略大小写

strings app.bin | grep -i "error"

-i:不区分大小写(Error / ERROR / error)


三、使用正则表达式

strings app.bin | grep -E "https?://[a-zA-Z0-9./]+"

提取 URL 示例。


四、显示行号

strings -n 6 app.bin | grep -n "config"
  • -n 6:只显示长度 ≥ 6 的字符串
  • -n(grep):显示行号

五、从多个文件中搜索

strings *.bin | grep "secret"

或分别显示文件名:

strings *.bin | grep -H "secret"

六、同时搜索多个关键字

strings app.bin | grep -E "user|pass|token"

七、反向匹配(排除)

strings app.bin | grep -v "debug"

排除包含 debug 的行。


八、直接对 grep 结果进一步处理

strings app.bin | grep "IP:" | awk '{print $2}'

九、实际安全/排查示例

1️⃣ 查找硬编码密码

strings binary | grep -i "password"

2️⃣ 查找 URL 或域名

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

3️⃣ 查找版本信息

strings binary | grep -i "version"

十、注意事项

  • strings 默认最小字符串长度是 4
  • 对压缩/加密数据效果有限
  • 可加 -a 扫描整个文件(不止数据段)
strings -a binary | grep "keyword"

如果你有具体场景(比如分析病毒、逆向、日志、固件),我可以给你更针对性的命令。

0 踩