在 Linux 安全学习中,strings 是一个非常基础但很有用的命令,用来从二进制文件、内存镜像、日志、固件等中提取可读字符串。下面从“为什么学”“怎么用”“安全场景示例”三个角度讲。
很多安全分析对象本身不是文本:
这些文件中常留下:
strings 能快速“看一眼里面有什么”。
strings file
提取所有可打印字符串(默认长度 ≥ 4)
strings -n 6 file
只显示长度 ≥ 6 的字符串,减少噪音
strings -t x file
以十六进制显示字符串位置(配合 hexdump / gdb 很有用)
strings malware.bin | grep -i "http"
strings firmware.bin | grep -i "password"
strings virus.exe | grep -E "http|ftp|/bin|sh"
可发现:
strings crackme
常能直接看到:
binwalk router.bin
strings router.bin | grep "admin"
找:
strings memory.dmp | grep -i "password"
从内存中提取:
strings app | grep -i "api_key"
strings file | grep -E "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"
strings bigfile | less
file unknown
binwalk unknown
strings unknown
stringsobjdump / gdb / radare2strings 只能看明文如果你愿意,我可以:
你更想往哪个方向学?