strings 是 Linux 下一个常用命令,用来从一个二进制文件(或任意文件)中提取可打印的字符串。常用于分析程序、排查二进制文件内容、逆向分析、取证等。
strings 文件名
示例:
strings /bin/ls
这会输出 /bin/ls 中所有长度 ≥ 4 的可打印字符串。
-n)默认最小长度是 4。
strings -n 6 test.bin
只显示长度 ≥ 6 的字符串。
-t)strings -t x file.bin # 十六进制偏移
strings -t d file.bin # 十进制偏移
strings -t o file.bin # 八进制偏移
示例:
strings -t x /bin/ls
输出类似:
1f4 /lib64/ld-linux-x86-64.so.2
-e)strings -e s file.bin # 7-bit ASCII
strings -e b file.bin # 16-bit Big Endian
strings -e l file.bin # 16-bit Little Endian
strings -e B file.bin # 32-bit Big Endian
strings -e L file.bin # 32-bit Little Endian
cat file.bin | strings
strings -n 5 file.bin | head
或结合 dd:
dd if=file.bin bs=1 skip=100 count=500 | strings
strings /bin/ls | grep password
strings unknown.bin | less
strings firmware.bin | grep -i version
grep 查找函数名或路径strings app | grep -E "/etc|/usr|/var"
strings 不能还原源代码,只能看到字符串如果你有具体场景(比如分析 ELF、固件、病毒样本、日志文件),我可以给你更针对性的用法。