1.命令简介

strings 命令是二进制工具集 GNU Binutils 的一员,用于打印文件中可打印字符串,文件可以是文本文件(test.c),但一般用于打印二进制目标文件、库或可执行文件中的可打印字符。字符串默认至少是 4 个或更多可打印字符的任意序列,可使用选项改变字符串最小长度。

2.命令格式

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...

3.选项说明

注意,长选项的参数对于短选项也是必须的。

-a, --all, -扫描整个文件而不是只扫描目标文件初始化和装载段
-d, --data仅打印文件中已初始化、加载的数据段中的字符串,这可能会减少输出中的垃圾量
-e, --encoding=ENCODING选择字符编码与字节序。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指定可打印字符序列的最小长度,而不是默认的4个字符
-o类似 --radix=o
-t, --radix=RADIX输出字符串在文件中的偏移位置,RADIX 可取值 o(octal,八进制)、d(decimal,十进制)或者 x(hexadecimal,十六进制)
-T, --target=BFD_NAME指定二进制文件格式
-v, -V, --version显示版本信息
-w, --include-all-whitespace默认情况下,Tab 和空格字符包含在字符串中,但其他空白字符除外,比如换行符和回车符等字符不是。-w 使所有的空白字符被认为是字符串的一部分
@FILE从指定的文件 FILE 中读取命令行选项

4.常用示例

(1)打印可执行文件中的所有可读字符串。

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标准库,而这个标准库的制作者为了让库的使用者知道该库兼容哪些版本的标准库,就在这个库中定义了一些字符串常量,使用如下命令可以查看向下兼容的版本。

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 命令(64)—— strings 命令相关推荐

  1. linux中的strings命令

    一.介绍 strings命令在对象文件或二进制文件中查找可打印的字符串.字符串可打印字符的任意序列,以换行符或空字符结束. strings命令对识别随机对象文件很有用. 常用参数: -a 扫描整个文件 ...

  2. 如何在Linux上使用strings命令

    Fatmawati Achmad Zaenuri/Shutterstock.comFatmawati Achmad Zaenuri / Shutterstock.com Want to see the ...

  3. linux之通过strings命令查看so里面是否包含****字符串

    1 问题 比如我们在一个C文件里面或者C++文件里面添加了日志打印字符串***,但是实际上没打印,我们会怀疑这个打印字符串有没有加到so里面去,那我们有什么办法呢?用strings命令 strings ...

  4. 查看linux是不是64位的命令

    方法1: 查看linux是不是64位的命令: #file /sbin/init 结果会出来 xx bit 方法二: # getconf LONG_BIT 32 getconf命令还可以获取系统的基本配 ...

  5. 【Linux】一步一步学Linux——gunzip命令(64)

    00. 目录 文章目录 00. 目录 01. 命令概述 02. 命令格式 03. 常用选项 04. 参考示例 05. 附录 01. 命令概述 gunzip命令用来解压缩文件.gunzip是个使用广泛的 ...

  6. strings命令(Win、Linux均可适用)

    在对象文件或二进制文件中查找可打印的字符串 补充说明 strings命令 在对象文件或二进制文件中查找可打印的字符串.字符串是4个或更多可打印字符的任意序列,以换行符或空字符结束. strings命令 ...

  7. linux之strings命令

    strings 命令是二进制工具集 GNU Binutils 的一员,用于打印文件中可打印字符串,strings命令在对象文件或二进制文件中查找可打印的字符串.字符串是4个或更多可打印字符的任意序列, ...

  8. Linux 后台开发常用命令目录(更新 ing)

    文章目录 前言 帮助命令 进程与作业管理 文本查看 文本编辑 编程相关 系统管理 文件传输 网络管理 文件与目录管理 磁盘管理 权限管理 用户与组管理 备份压缩 代码版本控制 性能检测 实用工具 前言 ...

  9. suse linux服务器的常用命令

    suse linux服务器的常用命令 1,让进程gate_way在后台运行: nohup ./gate_way & 2,查看某一进程的ID: ps -ef | grep  gate_way 3 ...

最新文章

  1. Task.Run vs Task.Factory.StartNew
  2. python编程题3
  3. CF628D Magic Numbers (数据大+数位dp)求[a,b]中,偶数位的数字都是d,其余为数字都不是d,且能被m整除的数的个数...
  4. bash/shell编程学习(2)
  5. python手机编译器可以干什么_世界上最好的Python编辑器是什么?
  6. linux开机自启服务命令,linux开机自启服务命令
  7. Mac OS X 显示和隐藏文件
  8. 绘制多个折线图_精品图表 | Excel绘制面板折线图
  9. python 接口设计_手把手教你在机器学习过程设计Python接口
  10. 博文视点读书节第七日丨IT大咖来荐书,CS提升分享今晚开播,晒单赢福袋活动上线!
  11. 【转】 opengl编程学习笔记(三)(2D绘图)
  12. matlab示例程序,Matlab100个实例程序.doc
  13. VC6修改lib文件的输出路径
  14. j2ee框架之jvn
  15. flash如何同时访问本地文件系统和网络文件
  16. 直流电机PID控制源码c语言,51单片机PID+PWM直流电机转速闭环控制源码(12864液晶显示)...
  17. Elasticsearch: collapse 去重
  18. 购物页面点叉号二维码隐藏的做法
  19. 程序设计思想与方法 笔记
  20. win8系统保护服务器,Win8整合SmartScreen升级功能保护系统安全

热门文章

  1. 蔡奇视察奇安信:对成功登陆科创板表示祝贺
  2. IT兄弟连 Java语法教程 编写Java源代码
  3. Flutter实战5 -- 天气查询APP重构之状态管理(ScopedModel)
  4. HDU 2152 Fruit (母函数)
  5. 搭建LINUX BIND实现DNS解析
  6. 关于 iOS 中 new Date()的坑
  7. iOS学习——Socket
  8. 摩根IT实习经验谈及其他
  9. Android 手机不赚钱为啥还要做
  10. LNMP编译安装(centos7+nginx1.9+mysql5.6+php5.5)