strings-在一个对象或者二进制文件中查找可输出的字符串

57 阅读2分钟

前言

strings查找二进制文件或标准输入中的ASCII字符串,它对于识别随机的目标文件和其他许多文件是有用的,字符串是任何4个或更多打印字符的序列(默认值)[以任何其他字符或EOF结尾,但不包括该字符]。除非给出-flag,否则strings将在对象文件的所有sections中查找,(__TEXT, __TEXT)部分除外。如果没有指定文件,则读取标准输入。

这个文件的参数可能是libx.a(foo.o)的形式,去请求仅关于该目标文件的信息,而不是整个库的信息。(通常这个参数在shell中必须被引用``libx.a(foo.o)'')

strings的选项

-a 这个选择会让strings命令在对象文件中的所有sections部分查找字符,包含(__TEXT,__text)部分。

- 这个选项导致strings命令在文件的所有字节中查找字符串(对于非对象文件,默认是这样)。

-- 此选项导致strings命令将以下所有参数视为文件

-o 在每个字符串的前面加上它在文件中的偏移量(十进制)。

t format 从文件开头开始写入每个字符串前的字节偏移量。格式应取决于作为格式选项参数使用的单个字符:

d 偏移量应用十进制表示。
o 偏移量应以八进制书写。
x 偏移量应写入十六进制

-number 十进制number用作最小字符串长度,而不是默认的4。

-n number 指定最小字符串长度,其中number参数是一个正十进制整数。默认为4。

-arch arch_type 当文件是通用文件时,string(1)指定文件的架构,arch_type。(参见arch(3)了解当前已知的arch_type。)arch_type可以是“all”,用于操作文件中的所有架构。