本文鏈接:
strings命令是二進制工具集GNU Binutils的一員linux命令,用于打印文件中可打印字符串,文件可以是文本文件(test.c),但一般用于打印二進制目標文件、庫或可執(zhí)行文件中的可打印字符。字符串默認至少是4個或更多可打印字符的任意序列,可使用選項改變字符串最小長度。
nm [-afovV]
[-min-len] [-n min-len] [--bytes=min-len]
[-t radix] [--radix=radix]
[-e encoding] [--encoding=encoding]
[-] [--all] [--print-file-name]
[-T bfdname] [--target=bfdname]
[-w] [--include-all-whitespace]
[--help] [--version] file...
-a,--all,-:掃描整個文件而不是只掃描目標文件初始化和裝載段
-d,--data:僅打印文件中已初始化、加載的數(shù)據(jù)段中的字符串,這可能會減少輸出中的垃圾量
-e <encoding>,--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:顯示幫助信息
-<min-len>,-n <min-len>,--bytes=<min-len>:指定可打印字符序列的最小長度,而不是默認的4個字符
-o:類似 --radix=o
-t <radix>,--radix=<radix>:輸出字符串在文件中的偏移位置,radix可取值o(octal,八進制)、d(decimal,十進制)或者x(hexadecimal,十六進制)
-T <bfdname>,--target=<bfdname>:指定二進制文件格式
-v,-V,--version:顯示版本信息
-w,--include-all-whitespace:默認情況下,Tab和空格字符包含在字符串中,但其他空白字符除外,比如換行符和回車符等字符不是。-w使所有的空白字符被認為是字符串的一部分
@<file>:從指定的文件file總讀取命令行選項
(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"
cstring類是mfc的類,...不搞windows mfc編程用不到這兩個一個是標準c庫的,定義了一些字符串的處理函數(shù).一個是標準c++庫的,定義了標準c++的std::string類.。cstring類是mfc的類,...不搞windows mfc編程一般用不到這兩個一個是標準c庫的,定義了一些字符串的處理函數(shù).一個是標準c++庫的,定義了標準c++的std::string類.。b. 兼容7位的c字符串(c strings)linux命令,對于c中的常量字符和字符串,其每一位都要和unix字符(串)中的位完全等同。
strings /lib64/libc.so.6 | grep GLIBC
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
[1]strings manual
[2]GNU Binutils
上一個教程:linux ss命令詳解
下一個教程:在Linux下,怎么切換目錄?