strings 命令在 Linux 中用于從二進制文件中提取可打印的字符串。這個命令對于分析二進制文件(如程序、庫或任何其他非文本文件)非常有用,因為它可以幫助你找到嵌入在其中的文本信息,比如錯誤消息、文件路徑、版本號等。
下面是 strings 命令的一些常用參數:
-n <number>: 指定至少連續出現 <number> 次的字符才會被提取為字符串。默認值是 4。-t <format>: 使用指定的格式顯示地址。<format> 可以是 x(十六進制)、d(十進制)或 o(八進制)。默認是十六進制。-T <basetype>: 設置基類型,用于解析相對地址。常見的基類型有 elf, pe, a.out, coff 等。-e <encoding>: 指定字符編碼,如 ascii, ibm866, cp1252 等。這有助于正確解釋某些非標準字符。-: 后面可以跟一個正則表達式,用于過濾輸出的字符串。只有匹配該表達式的字符串才會被顯示。--help: 顯示幫助信息并退出。--version: 顯示版本信息并退出。提取所有可打印字符串:
strings /path/to/binary
提取至少連續出現 5 次的字符:
strings -n 5 /path/to/binary
以十進制格式顯示地址:
strings -t d /path/to/binary
解析相對地址:
strings -T elf /path/to/binary
過濾特定編碼的字符串:
strings -e cp1252 /path/to/binary
使用正則表達式過濾字符串:
strings /path/to/binary | grep 'error'
通過這些參數,你可以更靈活地控制 strings 命令的輸出,以滿足不同的分析需求。