在 Ubuntu(以及其它 Linux 发行版)里,strings 是一个命令行工具,主要作用是:
从一个文件(通常是二进制文件)中提取“可打印的字符串”
比如你有一个编译好的程序、.so 动态库、固件、镜像文件,里面可能包含:
但这些内容不是给人直接读的,而是混在机器码里。
strings 能帮你把“看起来像文字”的部分提取出来。
strings program
常用于:
strings unknown.bin
安全人员常用 strings 做初步分析:
strings malware_sample | grep http
比如程序崩溃时提示:
Error: cannot open config file
你可以用:
strings app | grep config
strings file
strings -a -t x file
-t x:显示十六进制偏移默认是 4 个字符,可以改:
strings -n 6 file
strings -e l file
l:16-bit little endian| 场景 | 示例 |
|---|---|
| 看程序里写了啥 | strings app |
| 找 URL / IP | `strings app |
| 分析固件 | strings firmware.bin |
| 判断文件类型 | strings unknown |
| CTF / 逆向 | strings challenge |
strings 不等于反编译如果你愿意,我也可以:
你想用在哪方面?