strings 命令是二進制工具集 GNU Binutils 的一員,用於打印文件中可打印字符串,strings命令在對象文件或二進制文件中查找可打印的字符串。字符串是4個或更多可打印字符的任意序列,以換行符或空字符結束。 strings命令對識別隨機對象文件很有用。
命令語法
strings [ -a ] [ - ] [ -o ] [ -t Format ] [ -n Number ] [ -Number ] [ file ... ]
命令選項
-a --all:掃描整個文件而不是只掃描目標文件初始化和裝載段
-f –print-file-name:在顯示字符串前先顯示文件名
-n –bytes=[number]:找到並且輸出所有NUL終止符序列
- :設置顯示的最少的字符數,默認是4個字符
-t --radix={o,d,x} :輸出字符的位置,基於八進制,十進制或者十六進制
-o :類似--radix=o
-T --target= :指定二進制文件格式
-e --encoding={s,S,b,l,B,L} :選擇字符大小和排列順序:s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit
@ :讀取中選項
列出ls中所有的ASCII文本:
> strings `which pwd` | more
/lib64/ld-linux-x86-64.so.2
libc.so.6
fflush
strcpy
__printf_chk
readdir
setlocale
mbrtowc
strncmp
optind
strrchr
dcgettext
closedir
fchdir
...
查看某一個字符串屬於哪個文件
> cd /usr/bin && strings -f * | grep "name"
查看glibc支持的版本
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
...
更改分隔符
默認情況下,字符串使用的分隔符是換行符。但是,如果需要,您可以使用 -s 命令行選項自定義分隔符。
> strings -s / ls | more
/lib64/ld-linux-x86-64.so.2/
...
$8H/T$@H/D$@H/D$@H/=u|!/D$@H9/D$8t /D$@H/=^y!/=]y!/=Hy!/=+y!/=/y!/G(H;G0/5 s!/-Is!/D$P??/D$@H/D$PL/5|u!/D$8H/D$@H/D$8H/L$$H/L$$L/D$(H/D$@I/D$@H/-Vj!/t$81/=9r!/=P_!/>v|<?/$A\A]A^/<=tJ/[]A\A]/=~w!/5{w!/=lw!/=!w!/AWAVD/ATUSH/=&v!/[]A\A]A^A_/ATH9/G(H;G0sgH/W(H;W0s/[]A\/ATSH/[A\A]A^A_]/AUATU
SH/HcN0/-,^!/G(H;G0s%H/[]A\A]/X[]A\A]/O(H;O0sMH/=:n!/[]A\/O@H9N@H/NxH9OxH/ |&)/OhI9IhI/NXH9OXH/=wi!/G(H;G0s/=Lh!/=[h!/=^h!/t|Hc/AUATH9/5le!/%h[!/-~e!/[]A\A]A^/UUUUUUU/ATUS/[]A\/[]A\/AWAVAUATL/[]A\A]A^A_/=Qa!/=$a!/D$ H/D$(H/D$0H/D$8H/D$@H/D$HH/D$PH/D$XH/D$`H/D$hH/D$pH/D$xH/='`!/=q`!/AWAVAUI/A
TUH/-o^!/ tJ=/=C^!/=M]!/H9S /H9K /[]A\A]A^A_/=}Z!
打印字符序列的偏移量
> strings -t d ls | more
568 /lib64/ld-linux-x86-64.so.2
648 _k+
3817 libselinux.so.1
3833 __gmon_start__
3848 _init
3854 fgetfilecon
3866 freecon
3874 lgetfilecon
3886 _fini
3892 libcap.so.2
3904 cap_to_text
3916 cap_free
3925 cap_get_file
3938 libacl.so.1
3950 acl_get_entry
3964 acl_get_tag_type
3981 acl_extended_file
3999 libc.so.6
原文鏈接:https://rumenz.com/rumenbiji/linux-strings.html
微信公眾號:入門小站