天天看點

Linux調試工具之strings

部落格搬家,原位址: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指令檢視新增檔案的一些可列印字元串是否在庫中,來判斷該檔案是否已經編譯到庫中。