在 Ubuntu(或其他 Linux 系统)里,strings 是一个常用命令,用来从一个二进制文件或数据文件中提取可打印的字符串。理解它的输出结果,可以从以下几个方面入手。
strings 是干什么的?strings /bin/ls
作用:
扫描文件,把“连续的可打印字符序列”打印出来。
它不解析文件结构,只是“看到像文字的东西就输出”。
strings 输出结果长什么样?典型输出示例:
Usage: ls [OPTION]... [FILE]...
GNU coreutils
%s: invalid option -- '%c'
/etc/passwd
libc.so.6
这些内容通常来自:
Usage: ls [OPTION]...
Permission denied
✅ 说明:
/etc/passwd
/var/log/syslog
✅ 说明:
libc.so.6
printf
malloc
✅ 说明:
GNU coreutils 9.1
Build ID: xxxx
✅ 说明:
H4sIAAAAAAAAA+2c...
✅ 可能是:
strings app | less
strings app | grep -i password
⚠️ 注意:
strings unknown.bin | head
strings -n 8 file # 只显示长度 ≥8 的字符串
strings -e l file # 16-bit little endian
strings 不是反汇编objdumpreadelfgdbnm
strings的结果 = 文件里“像文字的东西”
用来快速窥探程序内容,但不能代替真正的逆向或调试分析。
如果你有具体的 strings 输出片段,我可以帮你逐行解释。