嵌入式技术
1.前言
文件中通常有两种类型的字符:可打印字符和不可打印字符。字母、数字、字符、标点符号、空格等称为可打印字符;除可打印字符外,所有字符都称为不可打印字符。
strings是linux系统中的一个命令,该命令可以从二进制文件(比如.so文件)中提取可打印字符。它可以帮助用户快速查找和分析二进制文件中的文本信息。下面简单介绍strings命令的使用方法、用途、以及一些常见的应用场景。
2.strings命令的使用方法
2.1 在linux的terminal中输入:man strings
2.2 常用参数:
-a | 扫描整个文件,而不是只扫描目标文件初始化和装载段 |
-f | 在显示字符串前,先显示文件名 |
-t | 输出字符的位置,基于八进制,十进制或十六进制 |
-o | 类似--radix=o |
3. strings命令主要用于以下几个方面:
3.1. 提取可打印的字符串
strings命令可以从二进制文件中提取出所有可打印的字符串,包括文本、注释、函数名等。这对于分析二进制文件非常有用,特别是在调试和逆向工程方面。
3.2. 查找特定字符串
通过使用strings命令的选项,可以根据指定的字符串来搜索二进制文件中的相关内容。这对于查找特定的函数名、变量名或者其他关键字非常有帮助。
3.3. 分析二进制文件
通过查看二进制文件中的字符串,可以获取一些关于文件结构、文件格式以及可能存在的漏洞或安全问题的信息。
常用来在二进制文件中查找字符串,与grep配合使用。strings命令输出的字符串长度为4个或4个以上的,长度小于4的字符串将不予打印,我们可以通过-n参数调整,strings -n 2 filename
strings命令是在对象文件或者二进制文件中查找可打印的字符串,有很多的用途,例如一个用法就是在编译的.so文件中定义字符串常量作为动态库的版本号,然后就可以使用strings+grep 组合命令查看当前编译的so的版本号了。输入strings -h也查看strings命令的用法。
4 常见应用场景:
4.1. 软件逆向工程
在逆向工程中,strings命令可以帮助分析二进制文件中的字符串,从而获取关键信息,如函数名、变量名、错误提示等。这对于理解程序的逻辑和功能非常有帮助。
4.2. 恶意软件分析
在分析恶意软件时,strings命令可以帮助发现可能存在的恶意代码或者隐藏的命令。通过查看二进制文件中的字符串,可以发现一些可疑的关键字或者域名。
4.3. 文件格式分析
通过查看二进制文件中的字符串,可以了解文件的结构和格式。这对于分析未知文件类型或者修复损坏的文件非常有帮助。
5. 几个有用的实例
5.1 查看glibc支持(向下兼容)的版本
5.2 列出pwd中所有的ASCII文本:
5.3 查看svt_vip生成的libvcap.so文件支持的GCC版本
5.3 查看denali_vip生成的libcdnvipcuvm.so文件支持的GCC版本
strings命令是Linux中一个强大的工具,用于从二进制文件中提取可打印的字符串。它可以帮助用户快速查找和分析二进制文件中的文本信息。通过使用strings命令,用户可以更好地理解程序的逻辑、分析恶意软件以及修复损坏的文件。希望本文对你理解和使用strings命令有所帮助。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !