一种Linux下获取可执行文件类型的方法与流程

文档序号:32341190发布日期:2022-11-26 09:50阅读:178来源:国知局
一种Linux下获取可执行文件类型的方法与流程
一种linux下获取可执行文件类型的方法
技术领域
1.本发明涉及linux系统应用技术领域,具体涉及一种linux下获取可执行文件类型的方法。


背景技术:

2.现有很多linux系统的安全产品需要对系统内有威胁的可执行文件及时发现和处理,而准确获取可执行文件的类型,可以对于威胁的文件程序做出有效筛选,缩小关注文件的范围,利于更及时准确的发现威胁文件,然而,现有技术难以准确获取可执行文件类型。
3.因此,需要提出一种linux下获取可执行文件类型的方法,以准确获取可执行文件类型,对于系统安全中存在的可执行文件的风险行为提供有效的筛选。


技术实现要素:

4.本发明的目的在于,针对上述现有技术的不足,提供一种linux下获取可执行文件类型的方法,以解决linux下可执行文件类型的准确获取问题。
5.为实现上述目的,本发明采用的技术方案如下:
6.本发明提供了一种linux下获取可执行文件类型的方法,该方法用于获取可执行文件的所属类型,该方法包括:
7.a)获取目标文件的基本属性信息,并且根据基本属性信息,对目标文件进行预处理,形成经预处理后的文件,基本属性信息包括目标文件的大小属性信息;
8.b)以二进制方式读取经预处理后的文件的内容,所读取的文件大小大于或等于4个字节并且小于或等于48字节,将所读取的文件的特征二进制值串与特征值“\x7f\x45\x4c\x46”进行匹配,如果匹配成功,则进行步骤c),否则将所读取的文件的特征二进制值串再与特征值“\x50\x4b\x03\x04”进行匹配,如果匹配成功,则进行步骤d),否则将所读取的文件的特征二进制值串的第2字节和第3字节位置的值与特征值“\x0d\0a”进行匹配,如果匹配成功,则所读取的文件的类型为python的pyc文件类型,否则进行步骤e);
9.c)如果所读取的文件的文件名中包含“.so”特征字符串,则所读取的文件的类型为linux下的so动态库文件类型,否则所读取的文件的类型为可执行文件elf类型;
10.d)如果所读取的文件的二进制文件内容中包含“\x4d\x45\x54\x41\x2d\x49\x4e\x46”特征值,则所读取的文件的类型为java的jar文件类型,否则所读取的文件的类型为压缩包文件类型;
11.e)如果所读取的文件的文本内容包含“/bin/sh”或者“/bin/bash”,则所读取的文件的类型为shell文件类型,否则进行步骤f);
12.f)如果所读取的文件的文件名后缀与“.sh”匹配成功,则所读取的文件的类型为shell文件类型,否则,将所读取的文件的文件名后缀与“.py”或者“pyc”进行匹配,如果所读取的文件的文件名后缀与“.py”或者“pyc”匹配成功,则所读取的文件的类型为python文件类型,否则所读取的文件的类型为非可执行文件类型。
13.可选地,在步骤a)中,对目标文件进行预处理,包括:过滤掉目标文件中文件大小小于4字节的文件,以过滤掉无可读属性的文件,被过滤掉的文件为非可执行文件。
14.可选地,在步骤b)中,在将所读取的文件的特征二进制值串与特征值“\x7f\x45\x4c\x46”进行匹配时,采用所读取的文件的特征二进制值串的第0至3字节位置的值与特征值“\x7f\x45\x4c\x46”进行匹配时。
15.可选地,在步骤b)中,在将所读取的文件的特征二进制值串与特征值“\x50\x4b\x03\x04”进行匹配时,采用所读取的文件的特征二进制值串的第0至3字节位置的值与特征值“\x50\x4b\x03\x04”进行匹配时。
16.本发明的有益效果包括:
17.本发明提供的linux下获取可执行文件类型的方法包括:a)获取目标文件的基本属性信息,并且根据基本属性信息,对目标文件进行预处理,形成经预处理后的文件,基本属性信息包括目标文件的大小属性信息;b)以二进制方式读取经预处理后的文件的内容,所读取的文件大小大于或等于4个字节并且小于或等于48字节,将所读取的文件的特征二进制值串与特征值“\x7f\x45\x4c\x46”进行匹配,如果匹配成功,则进行步骤c),否则将所读取的文件的特征二进制值串再与特征值“\x50\x4b\x03\x04”进行匹配,如果匹配成功,则进行步骤d),否则将所读取的文件的特征二进制值串的第2字节和第3字节位置的值与特征值“\x0d\0a”进行匹配,如果匹配成功,则所读取的文件的类型为python的pyc文件类型,否则进行步骤e);c)如果所读取的文件的文件名中包含“.so”特征字符串,则所读取的文件的类型为linux下的so动态库文件类型,否则所读取的文件的类型为可执行文件elf类型;d)如果所读取的文件的二进制文件内容中包含“\x4d\x45\x54\x41\x2d\x49\x4e\x46”特征值,则所读取的文件的类型为java的jar文件类型,否则所读取的文件的类型为压缩包文件类型;e)如果所读取的文件的文本内容包含“/bin/sh”或者“/bin/bash”,则所读取的文件的类型为shell文件类型,否则进行步骤f);f)如果所读取的文件的文件名后缀与“.sh”匹配成功,则所读取的文件的类型为shell文件类型,否则,将所读取的文件的文件名后缀与“.py”或者“pyc”进行匹配,如果所读取的文件的文件名后缀与“.py”或者“pyc”匹配成功,则所读取的文件的类型为python文件类型,否则所读取的文件的类型为非可执行文件类型。通过从文件基本属性信息、文件二进制内容特征值、文件可读字符串内容特征值、文件名后缀特征值等多个维度综合判断可执行文件所属类型,可以准确地获取linux下可执行文件的所属类型,进而有助于系统安全软件对可执行文件的运行阻断控制等功能的有效实现。
附图说明
18.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
19.图1示出了本发明实施例提出的linux下获取可执行文件类型的方法的流程示意图。
具体实施方式
20.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
21.现有很多linux系统的安全产品需要对系统内有威胁的可执行文件及时发现和处理,而准确获取可执行文件的类型,可以对于威胁的文件程序做出有效筛选,缩小关注文件的范围,利于更及时准确的发现威胁文件。本发明通过分析文件内容,准确获取可执行文件类型,对于系统安全中存在的可执行文件的风险行为提供有效的筛选。
22.图1示出了本发明实施例提出的linux下获取可执行文件类型的方法的流程示意图,如图1所示,本发明提出了一种linux下获取可执行文件类型的方法,该方法用于获取可执行文件的所属类型。
23.该方法包括:
24.a)获取目标文件的基本属性信息,并且根据基本属性信息,对目标文件进行预处理,形成经预处理后的文件,基本属性信息包括目标文件的大小属性信息;
25.b)以二进制方式读取经预处理后的文件的内容,所读取的文件大小大于或等于4个字节并且小于或等于48字节,将所读取的文件的特征二进制值串与特征值“\x7f\x45\x4c\x46”进行匹配,如果匹配成功,则进行步骤c),否则将所读取的文件的特征二进制值串再与特征值“\x50\x4b\x03\x04”进行匹配,如果匹配成功,则进行步骤d),否则将所读取的文件的特征二进制值串的第2字节和第3字节位置的值与特征值“\x0d\0a”进行匹配,如果匹配成功,则所读取的文件的类型为python的pyc文件类型,否则进行步骤e);
26.c)如果所读取的文件的文件名中包含“.so”特征字符串,则所读取的文件的类型为linux下的so动态库文件类型,否则所读取的文件的类型为可执行文件elf类型;
27.d)如果所读取的文件的二进制文件内容中包含“\x4d\x45\x54\x41\x2d\x49\x4e\x46”特征值,则所读取的文件的类型为java的jar文件类型,否则所读取的文件的类型为压缩包文件类型;
28.e)如果所读取的文件的文本内容包含“/bin/sh”或者“/bin/bash”,则所读取的文件的类型为shell文件类型,否则进行步骤f);
29.f)如果所读取的文件的文件名后缀与“.sh”匹配成功,则所读取的文件的类型为shell文件类型,否则,将所读取的文件的文件名后缀与“.py”或者“pyc”进行匹配,如果所读取的文件的文件名后缀与“.py”或者“pyc”匹配成功,则所读取的文件的类型为python文件类型,否则所读取的文件的类型为非可执行文件类型。
30.可选地,在步骤a)中,对目标文件进行预处理,包括:过滤掉目标文件中文件大小小于4字节的文件,以过滤掉无可读属性的文件,被过滤掉的文件为非可执行文件。
31.可选地,在步骤b)中,在将所读取的文件的特征二进制值串与特征值“\x7f\x45\x4c\x46”进行匹配时,采用所读取的文件的特征二进制值串的第0至3字节位置的值与特征值“\x7f\x45\x4c\x46”进行匹配时。
32.可选地,在步骤b)中,在将所读取的文件的特征二进制值串与特征值“\x50\x4b\x03\x04”进行匹配时,采用所读取的文件的特征二进制值串的第0至3字节位置的值与特征
值“\x50\x4b\x03\x04”进行匹配时。
33.本发明区分文件类型核心思想:文件的二进制内容和属性是决定该文件是何种可执行文件的根本,文件名特征及可读内容字符串,是对文件具体类型结果的辅助佐证。通过获取目标文件的基本属性信息,并对文件进行预处理;以二进制方式读取文件的内容,将文件的特征二进制值串与预设特征值进行匹配;根据特征值匹配结果,选择性地进行文件名匹配、二进制文件内容匹配、文本内容匹配;最后根据文本内容匹配结果,选择性地进行文件名后缀匹配。本发明通过从文件基本属性信息、文件二进制内容特征值、文件可读字符串内容特征值、文件名后缀特征值等多个维度综合判断可执行文件所属类型,可以准确地获取linux下可执行文件的所属类型,进而有助于系统安全软件对可执行文件的运行阻断控制等功能的有效实现。
34.上述实施例只为说明本发明的技术构思及特点,其目的在于让本领域普通技术人员能够了解本发明的内容并加以实施,并不能以此限制本发明的保护范围,凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1