strings
命令在 Linux 安全领域是一个基础但强大的工具,主要用于从二进制文件中提取可打印字符串。以下是它在安全工作中的主要用途及示例分析:
bash
strings malware.bin | grep -E 'http://|https://|password|key'
bash
strings /usr/bin/suspicious_program | grep -i "libc"
core dump
或/proc/$PID/mem
)中提取进程运行时的敏感数据。bash
strings /proc/1234/mem | grep -A 10 'DB_PASSWORD='
bash
strings firmware.img | grep -i "admin"
bash
strings -n 8 app.bin | grep -E 'AKIA|PRIVATE KEY|BEGIN RSA'
%s
、%n
)或不安全函数调用(如strcpy
)。bash
strings vulnerable_app | grep '%n'
grep
、awk
过滤结果:
bash
strings file.bin | grep -iE 'exploit|vulnerable'
-n
参数)减少噪音:
bash
strings -n 10 file.bin
-e l
用于16位小端字符)。strings
仅提取可打印字符,可能遗漏编码或混淆的数据。strings
是安全分析中的“瑞士军刀”,适合快速初筛二进制文件。结合逆向工具(如Ghidra
、radare2
)和动态分析(如strace
、ltrace
),能显著提升分析效率。