在 Debian(以及大多数 Linux 发行版)中,strings 是一个常用工具,用来从二进制文件、库、固件、内存转储等中提取可打印的字符串。下面按常见使用场景说明。
strings 属于 binutils 包:
sudo apt update
sudo apt install binutils
安装后可直接使用:
strings --version
strings /bin/ls
这会输出 /bin/ls 中所有长度 ≥ 4 的可打印字符串。
默认最小长度是 4,可以用 -n 修改:
strings -n 6 /usr/bin/vim
只显示长度 ≥ 6 的字符串。
strings /lib/x86_64-linux-gnu/libc.so.6
常用于分析库中包含的错误信息、函数名、版本信息等。
strings *.so
或递归:
find . -type f -exec strings {} \;
strings /bin/ls | grep "usage"
strings binary | grep -E "(http|password|user|key)"
strings -t x /bin/ls
输出示例:
3f2c /lib64/ld-linux-x86-64.so.2
3f4e libc.so.6
-t x:十六进制偏移
-t d:十进制偏移
-t o:八进制偏移
readelf -S binary
.rodata 段中的字符串strings -e l binary
或结合 objdump:
objdump -s -j .rodata binary
✅ 分析程序中的:
✅ 逆向工程 / 恶意软件分析
✅ 固件分析
✅ 排查程序崩溃原因
⚠️ strings 不能解密、不能反编译
⚠️ 字符串可能是 编码、混淆或截断的
⚠️ 敏感信息提取需遵守法律与授权范围
如果你有具体需求,比如:
可以直接告诉我,我可以给你更精确的命令。