strings

检索二进制数据文件中的可打印字符串


语法格式

strings [-afo] [-minlen | -n minlen] [--print-file-name] [-t radix]
[-e encoding] [@file] [-] files
strings [--help] [-v|-V|--version]

命令简介

strings命令主要用于检索给定的二进制数据文件,显示其中至少由4个连续出现的可打印字符组成的字符串。其中,files是一个或多个二进制数据文件。通常,strings仅检索目标文件的初始化部分和已加载到内存的数据部分。对其他类型的文件而言,strings会检索整个文件,显示其中的字符串。

命令选项

-a, --all, -  不仅检索目标文件的初始化部分及已加载到内存的数据部分,还要检索整个目标文件。

-e encoding, --encoding=encoding  按照指定的字符编码检索字符串,可用于检索各种编码形式的字符串。有效的字符编码是默认的s(ASCII字符)S(单字节全8位字符)、b(16位高位优先)、l(16位低位优先)、B(32位高位优先)和L(32位低位优先)。

-f, --print-file-name  在每个字符串之前,显示文件的名字。

-n minlen, -minlen, --bytes=minlen  显示至少包含指定字符个数的字符串。默认值为4。

-o  相当于“-t o”,表示以八进制数值显示字符串首字符在文件中的偏移值。

-t radix, --radix=radix  在每一个字符串之前,显示其首字符在文件中的偏移值。其中radix用于指定偏移值的基数,如o表示八进制数值,x表示十六进制数值,d表示十进制数值。

--help  显示命令的用法、概述与选项说明等帮助信息,然后退出。

-v, -V, --version  显示命令的版本与版权等信息,然后退出。

@file  从指定的文件中读取命令行选项。把读取的选项插入@file的位置,替换该选项。如果file不存在或无法读,则按文字处理该选项,但不会删除。选项的写法如同命令行,多个选项之间需加空白字符分隔符。文件中也可以包括@file选项,采用同样的方法递归处理。

应用实例

1. 查询二进制代码文件,观察其中是否存在感兴趣的数据内容。

$ strings /boot/grub/stage2

2. 查询二进制代码文件,重点观察其中的长字符串。

$ strings –n 20 /boot/grub/stage2

索引:A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z