你提到的 “Ubuntu Strings” 大概率是指 strings 命令(从二进制文件中提取可打印字符串)。如果你觉得它跑得慢,下面按最常用 → 进阶给你一些加速和优化建议。
先搞清楚是 CPU / IO / 磁盘 / 参数问题:
time strings bigfile > /dev/null
再对比:
time cat bigfile | strings > /dev/null
如果差别很大,说明是 IO 或参数问题。
默认 strings 会输出 4 个字符以上 的字符串,你可以适当提高:
strings -n 6 file
或更大:
strings -n 10 file
✅ 效果:
如果目标是 ELF 可执行文件,可以只扫描 .rodata:
strings -e l file
或者结合 objdump:
objdump -s -j .rodata file
✅ 效果:
rabin2(来自 radare2)rabin2 -z file
或只打印字符串:
rabin2 -q -z file
✅ 优点:
strings 快很多安装:
sudo apt install radare2
ripgrep / grep 替代(特定场景)如果你只是想找 某些字符串:
rg -a "keyword" file
或:
grep -a "keyword" file
✅ 优点:
放到内存里跑:
cp file /dev/shm/
strings /dev/shm/file
或:
cat file | strings
split -b 100M file part_
parallel strings ::: part_*
✅ 适合 超大文件(GB 级)
strings 本来就很慢?以下情况 无法避免:
-nstrings 扫描非 ELF 文件(如图片、视频)✅ 最快常用方案:
rabin2 -z binary
✅ 不想装新工具:
strings -n 8 binary
✅ 只找关键字:
rg -a "main|error|http" binary
如果你愿意,可以告诉我:
我可以直接给你 最优命令。