在 Linux 取证(Forensics)中,strings 是一个非常基础但非常有用的命令,用来从二进制文件、内存镜像、磁盘镜像或日志中提取可读字符串,从而发现线索(如路径、用户名、密码、URL、命令、恶意代码特征等)。
下面从 基本用法 → 取证场景 → 实战技巧 → 注意事项 讲清楚。
strings 会扫描文件,提取长度大于等于某阈值的 printable 字符序列(默认通常是 4)。
strings file
strings malware.bin
重点看:
/bin/shwget, curl/etc/, /tmp/)strings disk.img | less
或只搜关键字:
strings disk.img | grep -i "password"
strings memory.dmp | grep -i "cmd.exe"
常用于:
strings /var/log/auth.log
strings -n 8 file
减少噪音,只显示 ≥8 字符
strings -t x file
或十进制:
strings -t d file
作用:
hexdump / dd 进一步分析strings -e l file # 16-bit little endian
strings -e b file # 16-bit big endian
常用于:
strings file | grep -E "http|ftp|password|key"
strings -n 6 disk.img > strings.txt
strings malware | grep -E "\.[a-z]{2,}$"
strings disk.img | grep -i "password"
strings webapp | grep -i "eval("
strings file | grep -i ip
strings file | awk '{print $1}' | sort | uniq -c
结合:
grepxxdhexdumpbinwalkforemost✅ strings 不能解密,只能看明文
✅ 压缩 / 加密内容看不到
✅ 只是线索,不是结论
✅ 取证时注意 写保护 / 哈希校验
strings 是 Linux 取证的第一把“放大镜”
流程通常是:
文件 → strings → 关键字 → 偏移 → 深入分析
如果你愿意,我可以: