strings 不是 Debian 特有的命令,而是 Linux/Unix 下的通用工具,Debian 只是把它打包进来而已。下面用一句话先说明:
strings用来从一个二进制文件(程序、库、core 文件等)中提取“可打印的字符串”。
strings 是干嘛的(通俗版)当你拿到一个 编译后的程序 或 .so 动态库,没有源码时:
strings hello
它会把里面 看起来像字符串的内容(比如提示信息、路径、URL、日志)打印出来。
✅ 常用于:
假设你有个程序 hello:
hello
运行后输出:
Hello World
但你 没有源码,可以:
strings hello
你可能看到类似:
Hello World
/lib64/ld-linux-x86-64.so.2
printf
说明:
Hello World 是程序里的字符串/lib64/ld-linux-x86-64.so.2 是动态链接器printf 是调用的函数strings 在 Debian 里属于哪个包?在 Debian / Ubuntu 里:
dpkg -S strings
通常是:
binutils
因为 strings 属于 GNU Binutils。
安装:
sudo apt install binutils
strings a.out
strings -n 10 a.out
strings /lib/x86_64-linux-gnu/libc.so.6
strings core
| 场景 | 说明 |
|---|---|
| 程序报错但看不到日志 | 用 strings 看有没有提示信息 |
| 怀疑程序里有敏感信息 | 查是否有明文路径、URL |
| Linux 逆向入门 | 第一步就是 strings |
| 排查 so 依赖 | 看字符串里有没有路径 |
strings 不能反编译
strings是 Linux 下从二进制文件中“挖字符串”的工具,常用于分析、排错和安全检查。
如果你愿意,我也可以:
stringsstrings vs objdump