strings 是 Linux 下从二进制文件、镜像、内存 dump 等中提取可打印字符串的工具,常用于逆向、排查、取证等场景。下面从常用用法到实战示例系统说明。
strings 会扫描文件中的 可打印字符序列(默认长度 ≥ 4),常用于:
strings 文件名
示例:
strings a.out
输出示例:
/lib64/ld-linux-x86-64.so.2
printf
Hello World
-n)strings -n 6 a.out
只显示 长度 ≥ 6 的字符串(过滤碎字符)
-t)strings -t x a.out # 十六进制
strings -t d a.out # 十进制
strings -t o a.out # 八进制
示例:
strings -t x a.out
输出:
0x1234 /lib64/ld-linux-x86-64.so.2
0x2000 Hello World
strings -d a.out # 只扫描数据段(重点)
或按偏移:
strings -n 4 -e l a.out
-e)-e s # 7-bit ASCII
-e l # 16-bit little-endian
-e b # 16-bit big-endian
-e L # 32-bit little-endian
-e B # 32-bit big-endian
例如:
strings -e l a.out
strings -n 6 *
或:
find . -type f -exec strings -n 6 {} \;
strings binary | grep -E 'http|https|ip|192\.168'
strings core.1234 | less
strings a.out | grep -i pass
⚠️ 注意:这只是辅助分析,不是安全审计工具
strings /bin/ls
strings a.out | less
strings a.out | grep -i error
| 场景 | 用法 |
|---|---|
| 分析病毒/木马 | strings sample |
| 逆向分析 | strings -t x binary |
| 故障排查 | strings core |
| 取证分析 | strings mem.dump |
| 快速查看 | strings file | less |
如果你愿意,我可以结合 具体文件类型(ELF / 固件 / core dump / pcap) 给你更精确的用法示例。