欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux调试工具之strings

程序员文章站 2022-03-03 20:57:37
...

博客搬家,原地址:https://langzi989.github.io/2017/12/10/Linux调试工具之strings/

功能

strings命令的作用是查找指定文本文件或者二进制文件中的可打印字符串。默认打印字符串长度大于等于4的字符串。

参数说明

  • -a : 搜索整个文件,而不仅仅是数据段,以寻找可显示的字符串。如果省略这个标志,那么 strings 命令只在对象文件的初始化数据空间内寻找。
  • -n number(-number):指定寻找打印字符串的最小长度,默认最小长度为4,可以通过此参数设置最小长度为1或2等。最长不能超过4096
  • -o : 显示可打印字符串以及可打印字符串在文件中的位置,位置以8进制形式显示。
  • -t format:显示可打印字符串以及可打印字符串在文件中的位置,format可指定显示位置的格式是(o)8,(d)10,(x)16进制。

实例

#include <stdio.h>

int main() {
  char l_data =0;
  int a = 0;
 a;
  return 0;
}

  1. 直接使用stirngs,默认只显示长度大于等于4的可打印字符串
$ strings main.cpp
#include <stdio.h>
int main() {
  char l_data =0;
  int a = 0;
  return 0;

  1. -n参数
$strings -1 main.cpp
#include <stdio.h>
int main() {
  char l_data =0;
  int a = 0;
 a;
  return 0;
}
  1. -o 参数

前面为其在文件中的8进制位置

$strings -o main.cpp
0 #include <stdio.h>
24 int main() {
41   char l_data =0;
63   int a = 0;
104   return 0;
  1. -t format参数
    -t o参数与-o参数作用一样
$strings -t d main.cpp
0 #include <stdio.h>
20 int main() {
33   char l_data =0;
51   int a = 0;
68   return 0;

用途

当我们将多个文件编译到一个库文件或者可执行文件的时候,我们可以通过strings命令查看新增文件的一些可打印字符串是否在库中,来判断该文件是否已经编译到库中。