在 Linux 下,strings 命令用于从二进制文件中提取可打印字符串。所谓“批量处理”,通常有以下几种常见场景,下面分别说明。
strings file1 file2 file3
strings *.bin
strings /opt/app/*
find ./ -type f -exec strings {} \;
只处理某些类型:
find ./ -type f -name "*.so" -exec strings {} \;
.txtfor f in *; do
strings "$f" > "$f.txt"
done
find ./ -type f -exec sh -c '
strings "$1" > "$1.txt"
' _ {} \;
strings -f *.bin
输出示例:
a.bin: hello world
b.bin: test string
递归版本:
find ./ -type f -exec strings -f {} \;
strings *.bin | grep "password"
strings -f * | grep "version"
find ./ -type f -exec strings {} \; | sort | uniq
find ./ -type f -print0 | xargs -0 strings
| 参数 | 说明 |
|---|---|
-n |
最小字符串长度 |
-f |
显示文件名 |
-e |
指定编码(如 s l b B) |
示例:
strings -n 6 -f *.bin
如果你有具体场景(比如:批量分析固件、逆向 ELF、提取日志字符串、配合脚本处理),可以告诉我,我可以给你更精确的方案。