温馨提示×

linux strings命令怎么使用

小樊
43
2026-09-05 13:35:07
栏目: 智能运维

strings 是 Linux 下一个常用命令,用来从一个二进制文件(或任意文件)中提取可打印的字符串。常用于分析程序、排查二进制文件内容、逆向分析、取证等。


一、基本用法

strings 文件名

示例:

strings /bin/ls

这会输出 /bin/ls 中所有长度 ≥ 4 的可打印字符串。


二、常用参数

1. 指定最小字符串长度(-n

默认最小长度是 4。

strings -n 6 test.bin

只显示长度 ≥ 6 的字符串。


2. 显示字符串在文件中的偏移地址(-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

3. 指定字符编码(-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

4. 从标准输入读取

cat file.bin | strings

5. 只扫描文件的一部分

strings -n 5 file.bin | head

或结合 dd

dd if=file.bin bs=1 skip=100 count=500 | strings

三、实际常见用法示例

1. 查看程序中是否包含某个字符串

strings /bin/ls | grep password

2. 分析未知二进制文件

strings unknown.bin | less

3. 提取固件中的信息

strings firmware.bin | grep -i version

4. 配合 grep 查找函数名或路径

strings app | grep -E "/etc|/usr|/var"

四、注意事项

  • strings 不能还原源代码,只能看到字符串
  • 对加密或压缩数据效果有限
  • 对中文支持不好(除非是 UTF-8 且连续可打印)

如果你有具体场景(比如分析 ELF、固件、病毒样本、日志文件),我可以给你更针对性的用法。

0