-
2020-09-07 22:11:46
一、string命令安装
执行如下命令:
$ sudo apt-get install binutils
二、GNU binutils
GNU binutils是一组二进制工具集。包括:addr2line ar gprof nm objcopy objdump ranlib size strings strip。其中 ar 用于建立、修改、提取档案文件(archive)。archive是一个包含多个被包含文件的单一文件(也称之为库文件),其结构保证了可以从中检索并得到原始的被包含文件(称之为archive中的member)。member的原始文件内容、模式(权限)、时间戳、所有者和组等属性都被保存在 archive中。member被提取后,他们的属性被恢复到初始状态。
详细参考:https://www.crifan.com/files/doc/docbook/binutils_intro/release/html/binutils_intro.html
更多相关内容 -
详解linux中的strings命令简介
2020-09-15 13:10:13本篇文章主要介绍了linux中的strings命令简介,在linux下搞软件开发的朋友, 几乎没有不知道strings命令的。非常具有实用价值,需要的朋友可以参考下。 -
Linux:strings 工具常用方法
2018-07-09 22:47:29Linux:strings 工具常用方法 strings - print the strings of printable characters in files. strings prints the printable character sequences that are at least 4 characters long and are followed by an ...Linux:strings 工具常用方法
strings - print the strings of printable characters in files.
strings prints the printable character sequences that are at least 4 characters long and are followed by an unprintable character.
strings is mainly useful for determining the contents of non-text files.
string 工具可以对任何文件的内容进行分析,并输出可打印字符长度不小于4的串。
这里“任何文件”,包括文本文件和二进制文件。
其实“文本文件”和“二进制文件“两者并没有啥差别,所有的文件本质都是 Binary,文本文件只不过是一些特殊的 Binary 。
这里“连续的可打印字符最小长度”是可以被选项设置的,并非固定不可修改的4。
常用选项:
-f Print the name of the file before each string. -n Print sequences of characters that are at least min-len characters long, instead of the default 4.
Code:
/* * Filename : main.c * Author : jiang * Description : test-file * Date : 2018/07/09 22:03:57 */ char MODULE_VER[] = "REDISDRIVER_VER_0.17_20180709"; #include <stdio.h> #include <stdlib.h> #include <unistd.h> int main() { printf("1\n"); printf("22\n"); printf("333\n"); printf("4444\n"); printf("55555\n"); printf("666666\n"); printf("update something\n"); printf("global unique identifier\n"); return 0; }
编译 && 运行:
[test1280@localhost ~]$ gcc -o main main.c [test1280@localhost ~]$ ./main 1 22 333 4444 55555 666666 update something global unique identifier
Case 1:
快速查看模块版本。
我们项目组的每个程序模块,都有一个模块子版本号来唯一标识。
例如上面代码中的:
char MODULE_VER[] = "REDISDRIVER_VER_0.17_20180709";
假如我在一个装有我们项目组研发的软件平台环境中看到一个模块,如何快速地确定这个模块的版本呢?
使用 strings 命令 + grep 命令 可以快速地将版本号过滤查找出来:
[test1280@localhost ~]$ strings main | grep "REDISDRIVER" REDISDRIVER_VER_0.17_20180709
Case 2:
快速定位某源文件编译生成哪个 Binary 文件。
例如在 main.c 文件中有:
printf("global unique identifier\n");
我想要知晓,main.c 源文件最后会编译到哪个 Binary 文件中,如何查找呢?
[test1280@localhost ~]$ strings -f * | grep "global unique identifier" main: global unique identifier main.c: printf("global unique identifier\n");
从上面的输出可以看到,main.c 源文件最后编译到 main Binary 文件中啦!
注:由于 * 包含了 main.c 源文件,自然输出了源文件 main.c 一项。优化时可以判断是否有 x 权限,等等。
Case 3:
快速确认 重新编译 是否成功。
当项目很庞大时,如果更新单个文件,然后重新 make 可能由于五花八门的各类原因导致编译、链接错误,使得更新过的代码并未正确反映到对应的可执行文件中。
例如:
更新前为
printf("update something\n");
[test1280@localhost ~]$ strings main | grep "update something" update something
更新后为
printf("update something @ 20180709 by jiang\n");
[test1280@localhost ~]$ strings main | grep "20180709 by jiang" update something @ 20180709 by jiang
这样我们可以在不运行程序之前,确认代码是否更新成功。
注:
通过 -n 可以设置“连续的可打印字符最小长度”。
如果一个可打印字符串满足这个长度才会输出,否则将不输出。
举个栗子:
输出大于等于6的字符串
[test1280@localhost ~]$ strings -n 6 main /lib64/ld-linux-x86-64.so.2 __gmon_start__ libc.so.6 __libc_start_main GLIBC_2.2.5 fffff. 666666 update something @ 20180709 by jiang global unique identifier REDISDRIVER_VER_0.17_20180709
可以观察到,”666666” 被输出出来,其余的可打印字符串由于长度“不达标”故并未输出。
-
linux命令strings
2021-05-10 05:23:45linux命令strings,其man信息如下:strings(1) GNU Development Tools strings(1)NAMEstrings - 显示文件中的可打印字符总览 (SYNOPSIS)strings[-a|-|--al...linux命令strings,其man信息如下:
strings(1) GNU Development Tools strings(1)
NAME
strings - 显示文件中的可打印字符
总览 (SYNOPSIS)
strings
[-a|-|--all] [-f|--print-file-name] [-o] [--help] [-v|--version] [-n min-len|-min-len|--bytes=min-len] [-t
{o,x,d}[--target=bfdname] |--radix={o,x,d}] file
描述 (DESCRIPTION)
For each file given, GNU strings 显示 每个 指定的 file 文件里 包含的 所有 有 4个 (或者 用 选项 指定 的 数字) 以 上
连 续 可打印 字符 的字符串, 在 之后 紧跟着 一个 不可 打印 的 字符. 默认 情况 下, 它 只显示 目标文件 初始化 和 装载
段 的 字符串; 对于 其它 类型 的 文件 它 显示 整个 文件 里包含 的 所有 字符串.
strings 一般 用来 查看 非 文本 文件 的 内容.
选项 (OPTIONS)
在 这里 并列 的 长选项 和 短选项 都是 等价的.
-a
--all
- 不 只是 扫描 目标 文件 初始化 和 装载 段, 而是 扫描 整个 文件.
-f
--print-file-name
在 显示 字符串 之前 先 显示 文件名.
--help 在 标准 输出 打印 strings 命令 的 选项
列表
然后 退出.
-v
--version
在 标准 输出 打印 strings 命令 的 版本号 然后 退出.
-n min-len
-min-len
-bytes=min-len
打印 至少 min-len 字符 长 的 字符串. 默认的 是 4.
-t {o,x,d}
--radix={o,x,d}
在 字符串 前面 显示 其在 文件 中 的 偏移量. 选项 中 的 单个 字符 指定 偏移量的 进制 是 八进制, 十六进制 还
是 十进制.
--target=bfdname
指定 一种 目标 代码 格式 来 代替 你的 系统的 默认 格式. 关于 可用的 目标 代码格式 请 参见 objdump(1).
-o 同 -t o.
------------------------------
strings - print the strings of printable characters in files.
For each file given, GNU strings prints the printable character sequences that are at
least 4 characters long (or the number given with the options below) and are followed by
an unprintable character. By default, it only prints the strings from the initialized
and loaded sections of object files; for other types of files, it prints the strings from
the whole file.
strings is mainly useful for determining the contents of non-text files.
可见strings能输出文件中的可打印字符串(可指定字符串的最小长度),通常用来查看非文本文件(如二进制可执行文件)中的可读内容。比如:
[yixbao.cn]#strings /lib/tls/libc.so.6 | grep GLIBC
GLIBC_2.0
GLIBC_2.1
GLIBC_2.1.1
GLIBC_2.1.2
GLIBC_2.1.3
GLIBC_2.2
GLIBC_2.2.1
GLIBC_2.2.2
GLIBC_2.2.3
GLIBC_2.2.4
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_PRIVATE
这样就能看到glibc支持的版本。
http://yixbao.cn/html/diannaojishu/200808/12-195.html
-
linux 命令之strings
2015-05-06 16:00:25strings 命令是在对象文件或二进制文件中查找可打印的字符串。字符串是4个或者更多可打印字符串的任意序列,以换行符或者空字符结束。strings语法 strings [options] file_nameoptions: -a / -all : 扫描整个文件...strings 命令是在对象文件或二进制文件中查找可打印的字符串。字符串是4个或者更多可打印字符串的任意序列,以换行符或者空字符结束。
strings语法
strings [options] file_nameoptions:
-a / -all : 扫描整个文件而不是只扫描目标文件初始化和装载段。
-f / -print-file-name:在显示字符串前显示文件名
-n / -bytes=[number]:找到并且输出说有NULL终止符序列
- num :设置显示的最少字符数(num是一个数字),默认是4个字符
-t {o,d,x}/-radix={o,d,x} :输出字符的位置,基于八进制,十进制或者十六进制。
-o :类似-radix=o
-T /-target= : 指定二进制文件格式
@:从文件中读取选项示例:
$ gcc hello.c -o hello $ strings hello /lib/ld-linux.so.2 __gmon_start__ libc.so.6 _IO_stdin_used printf __libc_start_main GLIBC_2.0 PTRh UWVS [^_] ;*2$"
$ cat test -f -t d $ strings @test hello hello: 340 /lib/ld-linux.so.2 hello: 541 __gmon_start__ hello: 556 libc.so.6 hello: 566 _IO_stdin_used hello: 581 printf hello: 588 __libc_start_main hello: 606 GLIBC_2.0 hello: 824 PTRh hello: 1040 UWVS hello: 1132 [^_] hello: 1359 ;*2$"
-
linux中的strings命令
2022-03-29 21:59:48strings命令在对象文件或二进制文件中查找可打印的字符串。字符串可打印字符的任意序列,以换行符或空字符结束。 strings命令对识别随机对象文件很有用。 常用参数: -a 扫描整个文件而不是只扫描目标文件初始... -
linux命令学习——strings
2021-05-09 09:38:12strings命令输出的字符串是至少包含连续4个可打印字符的,这个可以通过参数来修改。2.常用参数-a/--all:扫描整个文件而不是只扫描目标文件初始化和装载段-f/--print-file-name:在显示字符串前先显示文件名-min-len... -
如何在Linux上使用strings命令
2020-09-04 17:32:23Fatmawati Achmad Zaenuri/Shutterstock.comFatmawati Achmad Zaenuri / Shutterstock.com Want to see the text inside a binary or data file? The Linux strings command pulls those bits of text—called ... -
linux的strings命令
2021-05-12 08:25:17linux命令stringsstrings - 显示文件中的可打印字符strings 一般用来查看非文本文件的内容.[-a|-|--all] [-f|--print-file-name] [-o] [--help] [-v|--version] [-n min-len|-min-len|--bytes=min-len] [-t{o,x,d}[-... -
strings命令_Linux strings 命令用法详解:在对象文件或二进制文件中查找可打印的字符串
2021-05-09 09:39:33strings命令在对象文件或二进制文件中查找可打印的字符串。字符串是4个或更多可打印字符的任意序列,以换行符或空字符结束。 strings命令对识别随机对象文件很有用。语法strings [ -a ] [ - ] [ -o ] [ -t Format ] ... -
linux strings-在对象文件或二进制文件中查找可打印的字符串
2021-05-12 08:31:37推荐:更多Linux文件查找和比较命令关注:linux命令大全strings命令在对象文件或二进制文件中查找可打印的字符串。字符串是4个或更多可打印字符的任意序列,以换行符或空字符结束。 strings命令对识别随机对象文件很... -
每天一个 Linux 命令(100):strings 命令
2021-05-09 09:38:21原标题:每天一个 Linux 命令(100):strings 命令1.命令简介strings 命令是二进制工具集 GNU Binutils 的一员,用于打印文件中可打印字符串,文件可以是文本文件(test.c),但一般用于打印二进制目标文件、库或可执行... -
linux strings命令
2018-08-23 08:32:12在Linux下搞软件开发的朋友, 几乎没有不知道strings命令的。我们先用man strings来看看: strings - print the strings of printable characters in files. 意思是, 打印文件中可... -
linux中的strings命令分析
2018-11-06 19:55:55在linux下搞软件开发的朋友, 几乎没有不知道strings命令的。我们先用man strings来看看: strings - print the strings of printable characters in files. 意思是, 打印文件中可打印的字符。 我... -
Linux Redis 的安装步骤详解
2021-01-21 15:00:03Linux Redis 的安装步骤详解 前言: Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表... -
linux中strings命令的作用
2019-08-02 13:52:34转载原文地址: https://blog.csdn.net/stpeace/article/details/50077677 -
linux之通过strings命令查看so里面是否包含****字符串
2018-12-29 03:35:26用strings命令 strings ***.so | grep 关键字 strings命令是在对象文件或者二进制文件中查找可打印的字符串 我们一般使用 strings命令是在对象文件或者二进制文件中查找可打印的字符串 ... -
Linux中安装RabbitMQ
2021-09-12 16:24:42在Linux中安装RabbitMQ 注意: 使用 CentOS-7-x86_64-DVD-1810.iso 使用 CentOs6也行 安装依赖 yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ... -
strings命令(Win、Linux均可适用)
2020-04-03 18:27:48strings命令在对象文件或二进制文件中查找可打印的字符串。字符串是4个或更多可打印字符的任意序列,以换行符或空字符结束。 strings命令对识别随机对象文件很有用。 语法 strings [ -a ] [ - ] [ -o ] [ -t ... -
妙用linux strings命令
2021-02-28 18:42:04一个小小的linux命令strings,能帮人省掉很多麻烦,加强心安。在后续的文章中,会多分享一些开发实战方面的经验、技巧等干货,希望对初入职场的人有帮助。职场不易,都有压力,每位大侠都曾经是菜鸟,只要不断学习、... -
Linux的strings命令查看glibc版本
2018-09-28 14:53:01在安装运行一些软件时,经常会遇到glibc的版本错误, 通过下面的方法,可以查看本机或者安装软件自带的glibc版本。 strings能输出文件中的可打印字符串(可指定字符串的最小长度),通常用来查看非文本文件(如二... -
linux在对象文件或二进制文件中查找可打印的字符串命令:strings
2021-06-03 18:04:58strings命令在对象文件或二进制文件中查找可打印的字符串。字符串是4个或更多可打印字符的任意序列,以换行符或空字符结束。 strings命令对识别随机对象文件很有用。语法strings [ -a ] [ - ] [ -o ] [ -t Format ] ... -
从Linux SNMP说起到community strings
2021-05-16 10:08:15比如,对于完全安装的WIN2K或者说启动了 简单网络管理协议(Linux SNMP)的系统来说,仍然将存在非常致命的隐患,完全将你的系统暴露给所有人。一般来说,的确是这样。但要做到真正完善的安全,还需要从每一个细节去... -
Linux 安装PostGIS 3.1全过程
2022-01-18 11:23:40Linux 安装 PostgreSQL详细过程 PostgreSQL 安装情况查看 切换postgres系统账号,输入psql,进行数据库用户postgres的密码修改 执行psql,默认进入postgres用户的postgres数据库 使用\du查看用户 使用\l... -
linux strings 命令用法收集
2019-03-23 14:54:15用于查找版本: strings /bin/ls | grep -i libc 运行结果: libc.so.6 __libc_start_main GLIBC_2.14 GLIBC_2.4 GLIBC_2.17 GLIBC_2.3.4 GLIBC_2.2.5 GLIBC_2.3 用在代码里: ... -
Linux软件安装及修改软件源
2021-11-27 19:36:202.安装软件 sudo apt-get install <软件包名> 软件包名一般为软件名,也可使用sudo apt-cache search <关键字> 模糊搜索。 3.查看apt帮助信息apt-get --help # 删除软件及其配置文件 apt-get --purge ... -
Linux下安装GLIBC
2019-09-24 16:23:44一、Linux下安装GLIBC 1.1 查看GLIBC版本 strings /lib64/libc.so.6 | grep GLIBC 1.2 安装升级GLIBC wget http://ftp.gnu.org/gnu/glibc/glibc-2.15.tar.gz wget ... -
linux命令strings简介
2019-03-15 20:58:51先用man strings来看看: strings-printthestringsofprintablecharactersinfiles. 意思是, 打印文件中可打印的字符。 我来补充一下吧, 这个文件可以是文本文件(test.c), 可执行文件(test), 动态链接库... -
Linux命令之strings - 打印文件中的可打印字符串
2021-05-13 02:05:26用途说明打印文件中的可打印字符串(print the strings of printable characters in files)。常用来在二进制文件中查找字符串,与grep配合使用。strings命令输出的字符串是至少包含连续4个可打印字符的,这个可以...