1.前言
文件中通常有兩種類型的字符:可打印字符和不可打印字符。字母、數(shù)字、字符、標點符號、空格等稱為可打印字符;除可打印字符外,所有字符都稱為不可打印字符。
strings是linux系統(tǒng)中的一個命令,該命令可以從二進制文件(比如.so文件)中提取可打印字符。它可以幫助用戶快速查找和分析二進制文件中的文本信息。下面簡單介紹strings命令的使用方法、用途、以及一些常見的應用場景。
2.strings命令的使用方法
2.1 在linux的terminal中輸入:man strings
2.2 常用參數(shù):
-a | 掃描整個文件,而不是只掃描目標文件初始化和裝載段 |
-f | 在顯示字符串前,先顯示文件名 |
-t | 輸出字符的位置,基于八進制,十進制或十六進制 |
-o? | 類似--radix=o |
3. strings命令主要用于以下幾個方面:
3.1. 提取可打印的字符串
strings命令可以從二進制文件中提取出所有可打印的字符串,包括文本、注釋、函數(shù)名等。這對于分析二進制文件非常有用,特別是在調(diào)試和逆向工程方面。
3.2. 查找特定字符串
通過使用strings命令的選項,可以根據(jù)指定的字符串來搜索二進制文件中的相關(guān)內(nèi)容。這對于查找特定的函數(shù)名、變量名或者其他關(guān)鍵字非常有幫助。
3.3. 分析二進制文件
通過查看二進制文件中的字符串,可以獲取一些關(guān)于文件結(jié)構(gòu)、文件格式以及可能存在的漏洞或安全問題的信息。
常用來在二進制文件中查找字符串,與grep配合使用。strings命令輸出的字符串長度為4個或4個以上的,長度小于4的字符串將不予打印,我們可以通過-n參數(shù)調(diào)整,strings -n 2 filename
strings命令是在對象文件或者二進制文件中查找可打印的字符串,有很多的用途,例如一個用法就是在編譯的.so文件中定義字符串常量作為動態(tài)庫的版本號,然后就可以使用strings+grep 組合命令查看當前編譯的so的版本號了。輸入strings -h也查看strings命令的用法。
4 常見應用場景:
4.1. 軟件逆向工程
在逆向工程中,strings命令可以幫助分析二進制文件中的字符串,從而獲取關(guān)鍵信息,如函數(shù)名、變量名、錯誤提示等。這對于理解程序的邏輯和功能非常有幫助。
4.2. 惡意軟件分析
在分析惡意軟件時,strings命令可以幫助發(fā)現(xiàn)可能存在的惡意代碼或者隱藏的命令。通過查看二進制文件中的字符串,可以發(fā)現(xiàn)一些可疑的關(guān)鍵字或者域名。
4.3. 文件格式分析
通過查看二進制文件中的字符串,可以了解文件的結(jié)構(gòu)和格式。這對于分析未知文件類型或者修復損壞的文件非常有幫助。
5. 幾個有用的實例
5.1 查看glibc支持(向下兼容)的版本
5.2?列出pwd中所有的ASCII文本:
5.3 查看svt_vip生成的libvcap.so文件支持的GCC版本
5.3 查看denali_vip生成的libcdnvipcuvm.so文件支持的GCC版本
strings命令是Linux中一個強大的工具,用于從二進制文件中提取可打印的字符串。它可以幫助用戶快速查找和分析二進制文件中的文本信息。通過使用strings命令,用戶可以更好地理解程序的邏輯、分析惡意軟件以及修復損壞的文件。希望本文對你理解和使用strings命令有所幫助。
審核編輯:湯梓紅
評論