在 Debian(以及其它 Linux 发行版)里,strings 和 grep 经常被组合使用,用来从二进制文件、core 文件、固件、日志中提取“可读字符串”并过滤感兴趣的内容。
下面按常见场景给你讲一下 strings + grep 的配合方式。
strings /bin/ls | grep passwd
含义:
strings:提取 /bin/ls 中的可打印字符串grep:只显示包含 passwd 的行strings binary | grep -i error
strings -n 6 binary | grep -n "version"
-n 6:只显示长度 ≥ 6 的字符串(过滤噪音)-n in grep:显示行号strings app | grep -E "error|warning|fail"
strings app | grep "user" | grep "admin"
strings firmware.bin | grep -E "https?://[a-z0-9.]+"
strings -n 8 binary | grep password
strings -e l binary # 16-bit little endian
strings -e b binary # 16-bit big endian
strings -t x binary | grep "config"
-t x:显示十六进制偏移(非常适合逆向)strings unknown_bin | grep -i "http"
strings unknown_bin | grep -E "/etc|/var|/home"
strings app | grep -E "password|token|secret|key"
strings core | grep -i "segmentation"
strings -n 6 -t x binary | grep -i "license"
lessstrings binary | grep -i config | less
strings binary | grep -i url > result.txt
如果你有具体场景(比如:
可以告诉我,我可以给你更精准的 strings + grep 命令。