在 Ubuntu 里,strings 是一个命令行工具,用来从二进制文件、库、core dump 等中提取可打印的字符串。下面按常见场景给你讲一下怎么用。
strings 会扫描文件,把长度大于等于一定值的可打印字符序列打印出来,常用于:
strings 文件名
strings /bin/ls
输出类似:
/lib64/ld-linux-x86-64.so.2
GNU
ls
Usage: ls [OPTION]... [FILE]...
默认是 4,可以改:
strings -n 6 文件名
只显示长度 ≥ 6 的字符串。
strings -t x 文件名 # 十六进制
strings -t d 文件名 # 十进制
strings -t o 文件名 # 八进制
示例:
strings -t x /bin/ls
strings -e l 文件名 # 16-bit little-endian
strings -e b 文件名 # 16-bit big-endian
strings -e x 文件名 # 32-bit
cat 文件名 | strings
strings 文件名 > result.txt
strings test.bin | grep password
strings test.bin | grep -i error
strings ./app | grep "/home"
strings libxxx.so
strings core.1234
strings 属于 binutils:
sudo apt install binutils
如果你有具体场景,比如:
.so 里找函数名可以直接把情况发我,我可以给你更精确的 strings 用法。