概覽
二進位檔案由電腦直接執行的0和1程式碼組成,使用普通文字編輯器開啟時會顯示亂碼。`strings` 命令會從這些二進位檔案中找出連續四個或更多可列印字元,並以文字形式提取出來。透過它,您可以識別二進位檔案中包含的錯誤訊息、檔案路徑、URL、設定值等有用資訊。
主要特色
strings 命令的主要特色如下:
- 從二進位檔案中提取人類可讀的字串。
- 預設尋找四個或更多連續的可列印字元。
- 支援多種字元編碼(ASCII、UTF-16 等)。
- 有助於識別程式使用的函式庫名稱或設定資訊。
strings 的應用領域
strings 不僅僅是檢查檔案,還可以在多個領域中應用。
- 惡意軟體分析: 從惡意軟體二進位中提取C&C伺服器位址、檔案名稱、API呼叫等資訊。
- 除錯: 在可執行檔中尋找包含的錯誤訊息或除錯字串以解決問題。
- 未知檔案分析: 當檔案擴展名不清楚時,透過 strings 檢查內部文字以推斷檔案性質。
主要選項
strings 命令的主要選項根據其目的進行了分組。
1) 提取選項
2) 幫助
生成的命令:
請試著組合命令。
這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。
`strings` 執行命令。
請將上述選項組合在一起,與 AI 一同虛擬執行命令。
使用範例
透過 strings 命令的各種使用範例來熟悉其功能。
從二進位檔案中提取基本字串
strings /usr/bin/top
從 `/usr/bin/top` 二進位檔案中提取基本設定(四個字元或更多)的字串。
只提取更長的字串
strings -n 8 /usr/bin/top
使用 `-n` 選項只提取八個字元或更長的字串。
同時輸出字串和十六進位偏移量
strings -t x /usr/bin/top
使用 `-t x` 選項同時輸出每個字串在檔案中開始的十六進位偏移量。這對於二進位分析很有用。
與管道符號 (|) 結合使用
strings /usr/bin/top | grep error
從 `/usr/bin/top` 檔案中提取並檢查包含 `error` 的字串。
提取 UTF-16 編碼字串
strings -e l /path/to/binary
使用 `-e` 選項提取 UTF-16 編碼字串。`l` 表示小端,`b` 表示大端。
安裝
strings 是 `binutils` 套件的一部分,預設包含在大多數 Linux 發行版中。無需額外安裝。
Debian/Ubuntu
sudo apt update
sudo apt install -y binutils
RHEL/CentOS/Fedora
sudo dnf install -y binutils
提示與注意事項
整理了使用 strings 命令時應注意的事項。
提示
- `strings` 比直接對二進位檔案執行 `cat` 提供更清晰、更有用的資訊。`cat` 會直接輸出二進位檔案內容,可能導致終端機顯示混亂。
- 提取的字串可能包含換行符或空格,因此與 `grep`、`awk` 等命令透過管道結合使用進行額外處理,可以更有效地利用。