strings 是 Linux 下一个非常实用但很简单的命令,常用于从二进制文件、core 文件、可执行程序中提取可读字符串。下面我从「是什么 → 怎么用 → 实战例子 → 学习建议」一步步讲。
strings 命令用于:
从一个文件中提取出“可打印的字符序列”
它常用于:
.o、.so、可执行文件)strings [选项] 文件
最简单用法:
strings a.out
strings -n 6 a.out
-n 6 表示只显示长度 ≥ 6 的字符串strings -t x a.out
-t x:十六进制偏移-t d:十进制-t o:八进制示例输出:
45f0 /lib64/ld-linux-x86-64.so.2
strings -n 5 -t x binary | less
适合大文件分析。
cat a.out | strings
strings /bin/ls
你会看到:
// test.c
int main() {
char *pwd = "admin123";
}
gcc test.c -o test
strings test | grep admin
⚠️ 这也是为什么密码不要写死在代码里。
strings core | less
常用于排查崩溃信息。
strings a.out | grep -i error
❌ 看不到:
✅ 适合:
man strings-n 和 -tgrep 配合file:看文件类型objdump:反汇编nm:看符号gdb:调试strings = 从“看不懂的二进制”里,捞出“看得懂的文字”
如果你愿意,我可以:
objdump / nm / gdb 对比讲你想往哪个方向学?