如何在Ubuntu中使用字符串命令

259 阅读3分钟

检查二进制或可执行文件以提取人类可读的文本并不是我们日常生活中的事情,但如果有人要求你这样做呢?在Ubuntu中,"strings"命令允许你查看二进制/可执行文件中存在的所有人类可读的字符。strings"命令主要用于确定文件的类型,但它也可以用来提取文本。例如,你有一个以不寻常的二进制格式保存的文件;你可以使用 "strings"命令提取你在这个文件中输入的文本,而不会遇到不可打印的字符。

你可能会想到一个问题:为什么我们要在可执行文件中添加文本?当软件或应用程序发布时,许多开发人员将二进制文件打包。然而,在二进制文件中包含ASCII文本是一个很好的主意。这有利于开发人员和用户更好地了解可执行文件。因此,"strings "命令将帮助他们确定这些非文本文件的内容。

在这篇文章中,我们将谈论如何Ubuntu系统中安装和使用字符串。 那么,让我们继续前进吧

如何在Ubuntu中安装字符串

首先,你必须安装 "binutils"包,以便在Ubuntu上使用 "strings"命令。这个包有各种编程工具,用于创建和管理二进制文件、配置文件数据、库、对象文件和汇编源代码。

 $ sudo apt install binutils

如何在Ubuntu中检查strings的版本

要检查这个工具的版本,请使用下面给出的命令。

$ strings -version

如何在Ubuntu中使用strings命令

strings命令的主要用途是提取字符串。为此,你需要输入文件名,并在Ubuntu终端运行该命令。在我们的系统中,我们有一个名为 "samplefile"的二进制/可执行文件。我们将在所有的例子中使用这个二进制文件。

strings命令将提取我们指定文件中存在的所有字符串。现在,执行下面的命令以检查其工作情况。

$ strings samplefile

如何在strings命令中设置最小字符串长度

在strings命令中,最小字符串长度的默认值被设置为4,这意味着该命令只打印出最小长度为4的字符序列。你可以利用strings命令中的"-n"选项来修改这个限制值。这个"-n"选项需要一个数值,代表字符串的极限。

在下面的例子中,我们将3作为字符串的最小长度。执行该命令将打印出最小长度为3个字符的字符串。

$ strings -n 3 samplefile

如何用strings命令打印一个字符序列的偏移量

strings命令中,你可以利用"-t"选项来显示字符序列的偏移量。这个选项要求你输入一个定义偏移量弧度的单一字符。你可以使用。

  • "d"代表十进制
  • 十六进制的 "x"。
  • "o"代表八进制

现在,写出下面的命令,打印出可执行文件的字符串的十进制偏移。

$ strings -t d samplefile

如何用strings命令扫描一个完整的文件

strings"命令可能会也可能不会扫描整个输入文件,因为这取决于其配置。利用"-a"选项,确保strings命令扫描系统中存在的完整二进制文件。

$ strings -a samplefile

如何改变strings命令中的默认分隔符

从上面的例子中,你可以看到字符串的默认分隔符新行。你可以利用strings命令中的"-s"选项来改变这些设置。例如,我们将在这个命令中指定**"-"作为字符串的分隔符**。

$ strings -s -- samplefile

执行该命令将显示以下输出。

如何用strings命令搜索多个文件

通配符被用来搜索特定的文件。在strings命令中,"*"字符代表多个值,而""用于指定单个值。在下面的例子中,我们将使用 "*"通配符搜索存在于"/bin"目录下的所有二进制文件。这里,我们还使用了"-if"选项,因为strings命令将列出从多个二进制文件中提取的结果,文件名出现在每一行的开头。

下面给出的strings命令的另一个功能是,它将使用"[|]"管道操作符把提取的结果重定向到 "grep"命令。该命令的这一部分将寻找带有 "Copyright"字样的字符串。

$ strings -f /bin/* | grep Copyright

执行该命令将显示以下输出。

如何用strings命令在系统RAM中搜索

除了从二进制文件和可执行文件中提取字符串之外,strings命令还可以用于其他各种操作。它使我们能够检查我们系统中的RAM。为此,需要有sudo权限,因为我们要访问"/dev/mem",它包含我们系统主内存的蓝图。less"是用来限制这个字符串命令的输出的。

$ sudo strings /dev/mem | less


如何在Ubuntu中打开strings命令的手册

如果你想查看strings命令的手册,那么在Ubuntu终端写出这个命令。

$ man strings


要获得strings命令的帮助,请在终端执行下面的命令。

$ strings -help

结论

如果你想检查一个二进制文件的内容,那么在Ubuntu中可以使用 "strings"命令。它从二进制文件中提取文本片段,也就是所谓的 "字符串"。这篇文章向你展示了如何在Ubuntu中使用strings命令。我们还解释了与之相关的各种例子。试试这些例子,以便更好地理解strings命令。