在 Ubuntu(以及其他 Linux 发行版)中,“strings” 通常指 GNU strings 工具,用于从一个文件(二进制、库、固件等)中提取可打印的字符串。常见用途包括:调试、逆向分析、取证、查看依赖信息、排查二进制内容等。
下面从安装 → 基本用法 → 常用分析选项 → 实战示例 → 高级技巧系统说明。
strings 是 GNU binutils 的一部分,作用是:
从非文本文件中提取可打印字符序列(默认长度 ≥ 4)
常用于:
Ubuntu 通常已预装,但你也可以手动安装:
sudo apt update
sudo apt install binutils
检查版本:
strings --version
strings /bin/ls
输出 /bin/ls 中所有可打印字符串。
strings /bin/ls > ls_strings.txt
-n默认最小长度为 4
strings -n 6 test.bin
只显示长度 ≥ 6 的字符串
-tstrings -t x test.bin
示例输出:
1a3 /lib64/ld-linux-x86-64.so.2
strings -t d test.bin
-e用于分析非 ELF 文件(如固件、Windows 程序)
| 选项 | 含义 |
|---|---|
-e s |
7-bit ASCII |
-e b |
16-bit big-endian |
-e l |
16-bit little-endian |
-e B |
32-bit big-endian |
-e L |
32-bit little-endian |
示例:
strings -e l firmware.bin
strings -d /bin/ls
-d 只扫描 data 段
strings /bin/ls | grep -i "error"
strings app | grep -E "http|https"
strings ./myapp | grep "/home"
strings suspicious_bin | grep -E "https?://"
strings ./app | grep ".so"
strings -n 8 binary | less
常见可发现内容:
恶意程序可能:
| 工具 | 用途 |
|---|---|
objdump |
反汇编 |
file |
判断文件类型 |
xxd |
十六进制查看 |
radare2 |
逆向分析 |
gdb |
动态调试 |
示例组合:
file binary
strings -n 6 binary | less
objdump -d binary | less
Q:strings 能看到什么? ✅ 程序中残留的可打印字符
Q:strings 能提取密码吗? ✅ 如果硬编码,可能看到;否则不行
Q:如何分析 ELF?
✅ file → strings → objdump → gdb
Ubuntu 上的 strings 是快速扫描二进制文件“可见文本信息”的利器,适合取证、调试和初步逆向分析,但不替代真正的反汇编和调试工具。
如果你有**具体文件(ELF / 固件 / 恶意样本)**想分析,可以贴出类型或片段,我可以一步步带你分析。