Linux常用命令-strings

命令

strings

描述

print the strings of printable characters in files
显示文件中可打印的字符

用法

1
strings [OPTION]... [FILE]...

选项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Options:
-a 扫描整个文件,而不仅仅是数据部分,默认选项
-d 只扫描文件中的数据部分
-f 显示文件名
-n 指定行宽,显示文件中大于指定行宽的行,-n 30可简写为-30
-t {o,d,x} 以八进制,十进制,十六进制显示字符串位置
-w 包括所有空白字符
-o 八进制显示字符位置,等同于-t o
-T 指定二进制文件格式
-s 指定分隔符

支持的目标文件格式有:
elf64-x86-64 elf32-i386 elf32-iamcu
elf32-x86-64 a.out-i386-linux pei-i386 pei-x86-64
elf64-l1om elf64-k1om elf64-little elf64-big elf32-little
elf32-big plugin srec symbolsrec verilog tekhex binary ihex

注意

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# 查看系统支持的libc库
$ strings /lib64/libc.so.6 | grep -E ^GLIBC
GLIBC_2.2.5
...
GLIBC_2.16
GLIBC_2.17
$ cp /usr/bin/cp .
$ strings cp | grep -i libc
libc.so.6
__libc_start_main
GLIBC_2.3
GLIBC_2.14
GLIBC_2.4
GLIBC_2.17
GLIBC_2.6
GLIBC_2.3.4
GLIBC_2.2.5
$ strings -d cp|grep GLIBC
GLIBC_2.3
GLIBC_2.14
GLIBC_2.4
GLIBC_2.17
GLIBC_2.6
GLIBC_2.3.4
GLIBC_2.2.5
$ strings -df cp|grep GLIBC
cp: GLIBC_2.3
cp: GLIBC_2.14
cp: GLIBC_2.4
cp: GLIBC_2.17
cp: GLIBC_2.6
cp: GLIBC_2.3.4
cp: GLIBC_2.2.5
# 以十六进制格式显示字符串位置,基本和xxd的结果一致
$ strings -tx cp |grep GLIBC
19fc GLIBC_2.3
1a06 GLIBC_2.14
1a11 GLIBC_2.4
1a1b GLIBC_2.17
1a26 GLIBC_2.6
1a30 GLIBC_2.3.4
1a3c GLIBC_2.2.5
$ xxd cp |grep GLIBC
0001a00: 435f 322e 3300 474c 4942 435f 322e 3134 C_2.3.GLIBC_2.14
0001a10: 0047 4c49 4243 5f32 2e34 0047 4c49 4243 .GLIBC_2.4.GLIBC
0001a20: 5f32 2e31 3700 474c 4942 435f 322e 3600 _2.17.GLIBC_2.6.
0001a30: 474c 4942 435f 322e 332e 3400 474c 4942 GLIBC_2.3.4.GLIB