在 Ubuntu(或其他 Linux 系统)中,分析二进制文件或数据中的可读字符串通常使用 strings 命令。以下是详细的使用方法和场景说明:
strings 命令是什么?strings 用于从 二进制文件、镜像、内存转储、固件 等非文本文件中提取 可打印字符序列(通常是长度 ≥ 4 的字符串)。
常见用途:
strings 文件名
示例:
strings /bin/ls
输出示例:
/lib64/ld-linux-x86-64.so.2
GNU C Library
Usage: %s [OPTION]... [FILE]...
默认最小长度是 4,可以用 -n 修改:
strings -n 6 文件名
strings -t x 文件名 # 十六进制
strings -t d 文件名 # 十进制
strings -t o 文件名 # 八进制
示例:
strings -t x /bin/ls
输出:
1040 /lib64/ld-linux-x86-64.so.2
1060 GNU C Library
strings -e l 文件名 # 16-bit little-endian UTF-16
strings -e b 文件名 # 16-bit big-endian
strings -e L 文件名 # 32-bit little-endian
strings /dev/sda | less
strings core.dump
⚠️ 注意:读取磁盘或内存文件需要权限。
strings test.bin | grep password
strings test.bin | wc -l
strings test.bin | sort | uniq
strings app | grep -i "password\|token\|key"
file unknown_file
strings unknown_file | less
strings firmware.bin | grep "http\|ssh\|ftp"
可能原因:
-n 2)✅ 支持:
| 工具 | 用途 |
|---|---|
objdump |
反汇编 |
xxd |
十六进制查看 |
binwalk |
固件分析 |
radare2 |
逆向工程 |
ghidra |
高级逆向 |
如果你有 具体文件类型或分析目标(如:恶意样本、固件、游戏程序、ELF 文件),可以直接告诉我,我可以给你 针对性的 strings 分析方案。