在 Debian(以及大多数 Linux 发行版)里,“strings” 通常指 strings 命令,用来从一个二进制文件或数据文件中提取可打印的字符串。下面从用途、用法、分析思路、常见场景几个方面系统说明。
strings 是什么?strings 是 GNU binutils 中的工具,用来:
从非文本文件中提取出“看起来像字符串”的连续可打印字符
常见用途:
strings /bin/ls
输出示例:
/lib64/ld-linux-x86-64.so.2
GNU
ls
Usage: %s [OPTION]... [FILE]...
strings -n 6 /bin/ls
只显示 长度 ≥ 6 的字符串。
strings -t x /bin/ls
输出:
1234 /lib64/ld-linux-x86-64.so.2
5678 Usage: ls
-t x:十六进制偏移-t d:十进制-t o:八进制strings -e l /bin/ls
-e 指定编码:
s:7-bit ASCII(默认)l:16-bit little-endianb:16-bit big-endianS:32-bitstrings /usr/bin/bash | grep -i version
常见输出:
GNU bash, version 5.2
strings /usr/bin/apt | grep "/"
可用于发现:
strings suspicious_binary
重点看:
⚠️ 注意:strings 只能做初步分析,不能替代反汇编(如 objdump、radare2、Ghidra)。
.so 动态库strings /lib/x86_64-linux-gnu/libc.so.6
常用于:
file 配合file unknown_file
strings unknown_file
objdump 对比objdump -s -j .rodata /bin/ls
.rodata 段通常包含字符串常量。
strings /bin/ls | grep -E "http|https|error|fail"
通常已经安装(属于 binutils):
sudo apt install binutils
检查版本:
strings --version
❌ 不能:
✅ 适合:
# 1. 查看文件类型
file binary
# 2. 提取字符串
strings -n 6 -t x binary > strings.txt
# 3. 搜索关键信息
grep -i "http\|error\|version\|password" strings.txt
如果你愿意,我可以:
你可以直接贴一个文件名或场景。