1.命令簡介
strings 命令是二進(jìn)制工具集 GNU Binutils 的一員,用于打印文件中可打印字符串,文件可以是文本文件(test.c),但一般用于打印二進(jìn)制目標(biāo)文件、庫或可執(zhí)行文件中的可打印字符。字符串默認(rèn)至少是 4 個或更多可打印字符的任意序列,可使用選項改變字符串最小長度。
2.命令格式
3.選項說明
注意,長選項的參數(shù)對于短選項也是必須的。
-a,--all,-
掃描整個文件而不是只掃描目標(biāo)文件初始化和裝載段
-d,--data
僅打印文件中已初始化、加載的數(shù)據(jù)段中的字符串,這可能會減少輸出中的垃圾量
-e,--encoding=ENCODING
選擇字符編碼與字節(jié)序。encoding可取值s=7bits的ASCII, S=8bits的Latin1, {b,l}=16bits寬字符大小端編碼, {B,L}=32bits寬字符大小端編碼。其中b,B代表bigendian,l,L代表littleendian
-f,–-print-file-name
在顯示字符串前先顯示文件名
--help
顯示幫助信息
-,-n,--bytes=MIN_LEN
指定可打印字符序列的最小長度,而不是默認(rèn)的4個字符
-o
類似--radix=o
-t,--radix=RADIX
輸出字符串在文件中的偏移位置,RADIX可取值o(octal,八進(jìn)制)、d(decimal,十進(jìn)制)或者x(hexadecimal,十六進(jìn)制)
-T,--target=BFD_NAME
指定二進(jìn)制文件格式
-v,-V,--version
顯示版本信息
-w,--include-all-whitespace
默認(rèn)情況下,Tab 和空格字符包含在字符串中,但其他空白字符除外,比如換行符和回車符等字符不是。-w 使所有的空白字符被認(rèn)為是字符串的一部分
@FILE
從指定的文件FILE中讀取命令行選項
4.常用示例
(1)打印可執(zhí)行文件中的所有可讀字符串。
strings/bin/ls
/lib64/ld-linux-x86-64.so.2
libselinux.so.1
_ITM_deregisterTMCloneTable
__gmon_start__
_Jv_RegisterClasses
_ITM_registerTMCloneTable
_init
fgetfilecon
freecon
lgetfilecon
...
(2)查看某一個字符串屬于哪個文件。
strings-f*|grep"xxx"
(3)查看glibc支持的版本。libc.so.6是c標(biāo)準(zhǔn)庫,而這個標(biāo)準(zhǔn)庫的制作者為了讓庫的使用者知道該庫兼容哪些版本的標(biāo)準(zhǔn)庫,就在這個庫中定義了一些字符串常量,使用如下命令可以查看向下兼容的版本。
strings/lib64/libc.so.6|grepGLIBC
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_2.16
GLIBC_2.17
GLIBC_PRIVATE
參考文獻(xiàn)
[1] strings manual
[2] GNU Binutils
責(zé)任編輯:xj
原文標(biāo)題:每天一個 Linux 命令(100):strings 命令
文章出處:【微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
二進(jìn)制
+關(guān)注
關(guān)注
2文章
793瀏覽量
41597 -
Linux
+關(guān)注
關(guān)注
87文章
11225瀏覽量
208914 -
命令
+關(guān)注
關(guān)注
5文章
678瀏覽量
21984
原文標(biāo)題:每天一個 Linux 命令(100):strings 命令
文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論