在 Linux 下,strings 是一个**从二进制文件(或其他非文本文件)中提取“可打印字符串”**的命令。
简单来说:凡是文件中连续的可打印字符(默认长度 ≥ 4),它都能抓出来。
常见能提取到的内容包括:
Usage: ./app [options]
Invalid argument
/etc/passwd
/bin/sh
/usr/bin/python3
main
printf
open
username
password
timeout=30
http://example.com
192.168.1.1
api.google.com
HTTP/1.1
SQLite format 3
PK(zip文件头)
这也是为什么 strings 常用于安全分析、逆向、取证
❌ 压缩 / 加密内容
❌ 非连续字符
❌ 运行时的内存数据
❌ 被混淆或分段存储的字符串
strings file.bin
# 提取长度 ≥ 6 的字符串
strings -n 6 file.bin
# 显示字符串在文件中的偏移
strings -t x file.bin
# 从内存/进程提取
strings /proc/<pid>/mem
# 结合 grep
strings app | grep -i password
如果你有具体文件类型(ELF / PE / 固件 / 内存),我可以给你更针对性的用法。