strings 是 Ubuntu / Linux 中一个非常常用的命令行工具,用来从一个二进制文件(或任意文件)中提取可打印的字符串。下面从安装、基本用法、常见场景、参数说明几个方面给你讲清楚。
stringsstrings 的作用是:
从文件中提取 长度 ≥ N(默认 4)的连续可打印字符序列
常用于:
在 Ubuntu 中,strings 属于 binutils 包,一般系统已自带。
strings --version
sudo apt update
sudo apt install binutils
strings test.bin
strings /bin/ls
-n:指定最小字符串长度(默认 4)strings -n 6 test.bin
-e:指定字符编码常见选项:
s:7-bit ASCII(默认)l:16-bit little-endianb:16-bit big-endianS:UTF-8(较新版本支持)示例:
strings -e l test.bin
-t:显示字符串偏移地址strings -t x test.bin
strings -t o test.bin
strings -t d test.bin
-f:显示文件名strings -f *.bin
输出示例:
a.bin: main
a.bin: /usr/lib
grep 使用(非常常见)strings test.bin | grep password
strings test.bin | grep -i url
strings /usr/bin/python3 | grep "/"
strings suspicious.bin | less
strings core | grep "error"
| 工具 | 用途 |
|---|---|
strings |
提取可读字符串 |
objdump |
反汇编二进制 |
xxd |
十六进制查看 |
⚠️ strings 不能解密、不能还原源码
⚠️ 字符串可能被混淆或加密
⚠️ 敏感信息(如密钥)即使存在也不代表可被直接使用
strings file
strings -n 6 file
strings -t x file
strings file | grep keyword
strings -f *.bin
如果你有具体文件类型(如 .so、ELF、二进制日志、固件、内存 dump)或具体目标(找密码、找接口、逆向分析),可以告诉我,我可以给你更针对性的 strings 使用方案。