如何在linux上使用strings命令

要檢視二進位制檔案或資料檔案中的文字嗎?Linux strings命令為您提取那些稱為“strings”的文字。...

要檢視二進位制檔案或資料檔案中的文字嗎?Linux strings命令為您提取那些稱為“strings”的文字。

Linux充滿了看起來像是解決問題的解決方案的命令。絃樂司令部肯定屬於那個陣營。它的目的是什麼?是否有指向列出二進位制檔案中可列印字串的命令的點?

讓我們後退一步。諸如程式檔案之類的二進位制檔案可以包含人類可讀文字的字串。但是你怎麼才能看到他們呢?如果你使用cat或更少,你很可能會以一個懸掛終端視窗結束。如果將不可列印的字元輸入到文字檔案中,則設計用於處理文字檔案的程式無法很好地處理這些檔案。

二進位制檔案中的大部分位元組不是人類可讀的,不能以任何有意義的方式列印到終端視窗。沒有與字母數字字元、標點符號或空格不對應的字元或標準符號來表示二進位制值。這些字元統稱為“可列印”字元。其餘為“不可列印”字元。

因此,試圖在二進位制檔案或資料檔案中檢視或搜尋文字字串是一個問題。這就是弦的作用。它從檔案中提取可列印字元的字串,以便其他命令可以使用這些字串,而不必與不可列印字元競爭。

使用strings命令

strings命令並不複雜,它的基本用法非常簡單。我們在命令列中提供希望字串搜尋的檔名。

在這裡,我們將在一個二進位制檔案上使用字串,一個叫做“jibber”的可執行檔案。

strings jibber

如何在linux上使用strings命令

字串從檔案中提取並在終端視窗中列出。

如何在linux上使用strings命令

設定最小字串長度

預設情況下,字串將搜尋四個字元或更長的字串。要設定更長或更短的最小長度,請使用-n(最小長度)選項。

注意,最小長度越短,你看到更多垃圾的機率就越高。

某些二進位制值與表示可列印字元的值具有相同的數值。如果其中兩個數值恰好並排出現在檔案中,並且您指定的最小長度為2,那麼這些位元組將被報告為一個字串。

要要求字串使用2作為最小長度,請使用以下命令。

strings -n 2 jibber

如何在linux上使用strings命令

我們現在有兩個字母字串包含在結果中。請注意,空格被計算為可列印字元。

如何在linux上使用strings命令

管道串透過

由於字串輸出的長度,我們將透過更少的管道。然後我們可以在檔案中滾動查詢感興趣的文字。

strings jibber | less

如何在linux上使用strings命令

清單現在以較少的形式呈現給我們,首先顯示清單的頂部。

如何在linux上使用strings命令

對物件檔案使用字串

通常,程式原始碼檔案被編譯成目標檔案。這些檔案與庫檔案連結以建立二進位制可執行檔案。我們手頭有jibber物件檔案,所以讓我們看看這個檔案。請注意“.o”副檔名。

jibber.o | less

如何在linux上使用strings命令

如果第一組字串的長度超過8個字元,則它們將全部包裝在第8列。如果它們已被包裝,則第九列中有一個“H”字元。您可以將這些字串識別為SQL語句。

如何在linux上使用strings命令

滾動輸出會發現檔案中沒有使用這種格式。

如何在linux上使用strings命令

有趣的是,可以看到目標檔案和完成的可執行檔案之間文字字串的差異。

在檔案的特定區域中搜索

編譯程式內部有不同的區域用於儲存文字。預設情況下,字串搜尋整個檔案以查詢文字。這就像您使用了-a(all)選項一樣。要使字串只在檔案中已初始化、已載入的資料節中搜索,請使用-d(data)選項。

strings -d jibber | less

如何在linux上使用strings命令

除非您有充分的理由這樣做,否則最好使用預設設定並搜尋整個檔案。

列印字串偏移量

我們可以讓字串列印從每個字串所在的檔案開始的偏移量。為此,請使用-o(offset)選項。

strings -o parse_phrases | less

如何在linux上使用strings命令

偏移量以八進位制表示。

如何在linux上使用strings命令

要以不同的數字基(如十進位制或十六進位制)顯示偏移量,請使用-t(基數)選項。基數選項必須後跟d(十進位制)、x(十六進位制)或o(八進位制)。使用-to和使用-o是一樣的。

strings -t d parse_phrases | less

如何在linux上使用strings命令

偏移量現在以十進位制列印。

如何在linux上使用strings命令

strings -t x parse_phrases | less

如何在linux上使用strings命令

偏移量現在以十六進位制列印。

如何在linux上使用strings命令

包括空格

字串將製表符和空格字元視為它找到的字串的一部分。其他空白字元(如換行符和回車符)不會被視為字串的一部分。-w(whitespace)選項使字串將所有空白字元視為字串的一部分。

strings -w add_data | less

如何在linux上使用strings命令

我們可以看到輸出中的空白行,這是第二行結尾的(不可見)回車符和換行符的結果。

如何在linux上使用strings命令

我們不侷限於檔案

我們可以將字串用於任何可以產生位元組流的東西。

透過這個命令,我們可以檢視計算機的隨機存取儲存器(RAM)。

我們需要使用sudo,因為我們正在訪問/dev/mem。這是一個字元裝置檔案,其中包含計算機主記憶體的影象。

sudo strings /dev/mem | less

如何在linux上使用strings命令

清單並不是RAM的全部內容。它只是可以從中提取的字串。

如何在linux上使用strings命令

相關:在Linux中,“一切都是檔案”是什麼意思?

一次搜尋多個檔案

萬用字元可用於選擇要搜尋的檔案組。*字元表示多個字元,而?字元表示任何單個字元。您還可以選擇在命令列中提供許多檔名。

我們將使用萬用字元搜尋/bin目錄中的所有可執行檔案。因為清單將包含許多檔案的結果,所以我們將使用-f(filename)選項。這將列印每行開頭的檔名。然後我們可以看到每個字串在哪個檔案中找到。

我們正在透過grep管道傳輸結果,並尋找包含“Copyright”一詞的字串

strings -f /bin/* | grep Copyright

如何在linux上使用strings命令

我們得到了/bin目錄中每個檔案的版權宣告的整潔列表,檔名位於每行的開頭。

如何在linux上使用strings命令

弦被解開了

字串並不神祕;它是一個典型的Linux命令。它做了一些非常具體的事情,做得非常好。

它是Linux的另一個核心,當它與其他命令一起工作時,它就真正地出現了。當您看到它如何位於二進位制檔案和其他工具(如grep)之間時,您就開始瞭解這個稍微晦澀難懂的命令的功能了。

  • 發表於 2021-04-03 09:27
  • 閱讀 ( 47 )
  • 分類:網際網路

你可能感興趣的文章

如何用java連線mysql資料庫

... 在本文中,讓我們看看連線到MySQL資料庫的詳細資訊以及如何使用它執行一些查詢。 ...

  • 發佈於 2021-03-11 17:39
  • 閲讀 ( 55 )

如何用程式碼讀寫xml檔案

您想學習如何從java讀寫XML檔案嗎? ...

  • 發佈於 2021-03-12 02:25
  • 閲讀 ( 67 )

關於javarmi註冊中心以及如何使用它的所有內容

...這些服務提供了一個集中的目錄。在本文中,我們將學習如何實現一個伺服器來公開物件,以及如何實現一個客戶端來呼叫伺服器上的方法,以及如何在RMI登錄檔中註冊和查詢服務。 ...

  • 發佈於 2021-03-12 15:58
  • 閲讀 ( 66 )

如何在linux上安裝和使用powershell

... 在本文中,我將向您展示如何在Linux上安裝、執行和使用PowerShell! ...

  • 發佈於 2021-03-16 02:34
  • 閲讀 ( 53 )

如何使用crontab自動化linux中的重複任務

... 在這裡,您將瞭解什麼是crontab,如何新增自動化作業,以及一些實際示例。 ...

  • 發佈於 2021-03-28 04:45
  • 閲讀 ( 56 )

用這個漂亮的python教程瀏覽一個網站

...對過程進行最大程度的控制。在這篇文章中,我們來看看如何使用美麗的湯刮網站。 ...

  • 發佈於 2021-03-28 10:33
  • 閲讀 ( 64 )

redis和php快速資料儲存入門

... 讓我們深入瞭解,學習如何加快我們的線上運營。 ...

  • 發佈於 2021-03-28 11:57
  • 閲讀 ( 42 )

終極樹莓皮命令備忘單

... 這就是為什麼我們準備了這個方便的備忘單的日常使用樹莓皮。 ...

  • 發佈於 2021-03-30 18:59
  • 閲讀 ( 58 )

如何在linux上使用seq命令

Linux seq命令可以在眨眼之間生成數字列表。但是如何將這個功能付諸實際使用呢?我們將向您展示seq如何為您帶來便利。 seq命令 乍一看,Linux seq命令似乎有些奇怪。它可以讓你快速生成數字序列,就這樣!不過,這裡的關鍵...

  • 發佈於 2021-04-01 11:46
  • 閲讀 ( 46 )

如何從linux命令列檢視二進位制檔案

...。檔案裡有一大堆馬廄,可以幫你分析。我們將向您展示如何使用這些工具。 識別檔案型別 檔案通常具有一些特性,允許軟體包識別它是哪種型別的檔案,以及其中的資料表示什麼。嘗試在MP3音樂播放器中開啟PNG檔案是沒有...

  • 發佈於 2021-04-02 04:41
  • 閲讀 ( 51 )
dmy491
dmy491

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦