strings
是 Linux 系统中一个简单但强大的工具,主要用于从二进制文件中提取可打印的字符串。它在系统管理、安全分析和故障排查中有着广泛的应用。以下是其核心作用及使用场景:
.so
)、固件等二进制文件中提取人类可读的字符串(如 ASCII 或 UTF-8 编码的文本)。bash
strings /bin/ls # 查看`ls`命令中的可打印字符串
bash
strings /usr/bin/nginx | grep "version"
bash
strings /opt/app/server | grep "\.so"
bash
strings malware.bin | grep -E "http|ftp|192.168"
bash
strings backup.tar.gz | grep -i "password"
bash
strings -a -t x crackme.exe # 显示字符串及偏移地址(16进制)
bash
strings /var/crash/core.1234 > crash_strings.txt
参数 | 作用 |
---|---|
-a |
扫描整个文件(默认跳过非文本段) |
-t x/o/d |
显示字符串偏移量(16/8/10进制) |
-n <长度> |
仅显示长度≥<长度> 的字符串 |
-e <编码> |
指定编码(如 l =16位小端,b =16位大端) |
grep
过滤关键信息。sudo
权限。objdump
、readelf
、hexdump
、radare2
。grep -a
(直接搜索二进制文件中的字符串)。通过灵活使用 strings
,系统管理员可以快速洞察二进制文件的内部信息,高效完成调试或安全审计任务。