在 Linux 下,strings 命令用于从二进制文件、core 文件、设备或任意文件中提取可打印的字符串。常见用法如下:
strings 文件名
示例:
strings a.out
strings 本身不能“只搜某个字符串”,通常是结合 grep 使用:
strings 文件 | grep "关键字"
示例:
strings app | grep "password"
忽略大小写:
strings app | grep -i "error"
strings binary | grep -n "main"
-n 可显示行号。
默认长度通常是 4,可修改:
strings -n 6 binary
结合搜索:
strings -n 6 binary | grep "token"
strings * | grep "version"
或指定文件类型:
strings *.so | grep "API"
strings /dev/sda | grep "secret"
(需要权限,谨慎使用)
strings program | grep "http"
strings malware.bin | grep -E "cmd|exe|sh"
strings libtest.so | grep "function"
| 参数 | 说明 |
|---|---|
-n |
最小字符串长度 |
-a |
扫描整个文件 |
-t x |
显示偏移(十六进制) |
-e |
字符编码(如 s l b) |
示例(带偏移):
strings -t x binary | grep "key"
如果你有具体场景(比如“在 ELF 里找密码”“在日志文件里搜字符串”),可以告诉我,我给你更精确的命令。