文件处理方法、装置、系统及存储介质制造方法及图纸

技术编号:37447883 阅读:15 留言:0更新日期:2023-05-06 09:19
本申请公开一种文件处理方法、装置、系统及存储介质,该方法包括:获取目标文件,判断所述目标文件是否是BIN文件格式;若所述目标文件是BIN文件格式,则确定所述BIN文件的shell脚本和二进制数据的分界点位置;根据所述分界点位置分离出shell脚本文件和二进制数据文件。本发明专利技术可以将LINUX安装格式BIN文件分割成一个文本文件和一个二进制文件,使BIN文件更易于检测。后续即可对分离出来的shell脚本文件、二进制数据文件单独进行扫描,以此能使检测的准确性、成功率都得到提高。成功率都得到提高。成功率都得到提高。

【技术实现步骤摘要】
文件处理方法、装置、系统及存储介质


[0001]本申请涉及文件处理
,尤其涉及一种文件处理方法、装置、系统及存储介质。

技术介绍

[0002]目前,网络安全行业对二进制可执行程序格式文件的漏洞、病毒的扫描和分析涉及多种格式,但仍有很多程序类文件格式未曾涉及。比如,对于LINUX安装格式BIN文件,则缺少检测的能力。

技术实现思路

[0003]本申请的主要目的在于提供一种文件处理方法、装置、系统及存储介质,可以拆分LINUX安装格式BIN文件,使BIN文件更易于检测,提高检测准确性和成功率。
[0004]为实现上述目的,本申请提供一种文件处理方法,其特征在于,所述方法包括以下步骤:
[0005]获取目标文件,判断所述目标文件是否是BIN文件格式;
[0006]若所述目标文件是BIN文件格式,则确定所述BIN文件的shell脚本和二进制数据的分界点位置;
[0007]根据所述分界点位置分离出shell脚本文件和二进制数据文件。
[0008]其中,所述判断所述目标文件是否是BIN文件格式的步骤包括:
[0009]判断所述目标文件的后缀是否为“.bin”,以及判断所述目标文件的文件头部是否为预设字符形式;
[0010]若所述目标文件的后缀为“.bin”,且所述目标文件的文件头部为预设字符形式,则确定所述目标文件为BIN文件格式。
[0011]其中,所述预设字符形式包括:"#!"两个字符或者是多个空白字符+"#!"的形式。
[0012]其中,所述确定所述BIN文件的shell脚本和二进制数据的分界点位置的步骤包括:
[0013]从所述BIN文件的起始位置逐字节遍历,找到第一个字节值0;
[0014]从所述字节值0的位置往前回溯,找到有正则表达式为"^exit(|
|\n)"的行;
[0015]从找到的行的下一行开始往后遍历;
[0016]若找到第一个非空白字符不是'#'的行,则遍历结束,确定所述非空白字符字符为二进制数据的开头,将所述非空白字符的位置作为shell脚本和二进制数据的分界点位置。
[0017]其中,所述从找到的行的下一行开始往后遍历的步骤之后还包括:
[0018]若找到空行或空白字符组成的行,则确定该行的内容为shell脚本的范围;
[0019]若发现一行的内容中,第一个非空白字符是'#',则确定该行是shell脚本的注释内容,将该行算作shell脚本的范围。
[0020]其中,所述根据所述分界点位置分离出shell脚本文件和二进制数据文件的步骤
包括:
[0021]读取从所述BIN文件的起始位置到分界点位置之前的内容并写入到一个以“.sh”为后缀的第一新文件中,将所述第一新文件作为提取得到的shell脚本文件;
[0022]读取从所述BIN文件的分界点位置开始到文件末尾的内容并写入到第二新文件中,将所述第二新文件作为提取得到的二进制数据文件。
[0023]其中,所述方法还包括:
[0024]对分离出的shell脚本文件和二进制数据文件进行检测。
[0025]本专利技术还提出一种文件处理装置,所述装置包括:
[0026]获取模块,用于获取目标文件,判断所述目标文件是否是BIN文件格式;
[0027]确定模块,用于若所述目标文件是BIN文件格式,则确定所述BIN文件的shell脚本和二进制数据的分界点位置;
[0028]分离模块,用于根据所述分界点位置分离出shell脚本文件和二进制数据文件。
[0029]本专利技术还提出一种文件处理系统,所述系统包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的文件处理程序,所述文件处理程序被所述处理器执行时实现如上所述的文件处理方法。
[0030]本专利技术还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机可读程序,所述计算机可读程序被处理器执行时实现如上所述的文件处理方法。
[0031]本申请实施例提出的文件处理方法、装置、系统及存储介质,通过获取目标文件,判断所述目标文件是否是BIN文件格式;若所述目标文件是BIN文件格式,则确定所述BIN文件的shell脚本和二进制数据的分界点位置;根据所述分界点位置分离出shell脚本文件和二进制数据文件。由此,可以将LINUX安装格式BIN文件分割成一个文本文件和一个二进制文件,使BIN文件更易于检测。后续即可对分离出来的shell脚本文件、二进制数据文件单独进行扫描,以此能使检测的准确性、成功率都得到提高。
附图说明
[0032]图1

图3为LINUX安装格式BIN文件的几种结构示意图;
[0033]图4为本申请文件处理装置所属系统的功能模块示意图;
[0034]图5为本申请文件处理方法第一示例性实施例的流程示意图;
[0035]图6为本申请文件处理方法第二示例性实施例的流程示意图。
[0036]本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
[0037]应当理解,此处所描述的具体实施案例仅仅用以解释本申请,并不用于限定本申请。
[0038]本申请实施例的主要解决方案是:通过获取目标文件,判断所述目标文件是否是BIN文件格式;若所述目标文件是BIN文件格式,则确定所述BIN文件的shell脚本和二进制数据的分界点位置;根据所述分界点位置分离出shell脚本文件和二进制数据文件。由此,可以将LINUX安装格式BIN文件分割成一个文本文件和一个二进制文件,使BIN文件更易于检测。后续即可对分离出来的shell脚本文件、二进制数据文件单独进行扫描,以此能使检
测的准确性、成功率都得到提高。
[0039]本实施例涉及的技术术语:
[0040]BIN文件:二进制文件,其用途依系统或应用而定。一种文件格式binary的缩写。一个后缀名为".bin"的文件,只是表明它是binary格式。比如虚拟光驱文件常用".bin"作为后缀,但并不意味着所有bin文件都是虚拟光驱文件。
[0041]linux中JDK的安装有可能会使用BIN格式,如图1

图3是文件“jdk

6u45

linux

x64.bin”的几个位置的截图(用notepad++打开):
[0042]文件头部如图1所示;文件中部(shell和二进制数据交接的部分)如图2所示;文件尾部(指文件末尾,也是二进制数据的末尾,这些内容中既有ASCII字符,也有二进制数据)如图3所示。
[0043]该JDK安装BIN文件中的shell脚本和二进制数据相对比较好分离,但BIN文件中也存在很多特殊情况,比如,不可用可见字符来区分shell脚本和二进制数据、不能通过ASCII字符来划定shell脚本和二进制数据的范围,或本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种文件处理方法,其特征在于,所述方法包括以下步骤:获取目标文件,判断所述目标文件是否是BIN文件格式;若所述目标文件是BIN文件格式,则确定所述BIN文件的shell脚本和二进制数据的分界点位置;根据所述分界点位置分离出shell脚本文件和二进制数据文件。2.根据权利要求1所述的方法,其特征在于,所述判断所述目标文件是否是BIN文件格式的步骤包括:判断所述目标文件的后缀是否为“.bin”,以及判断所述目标文件的文件头部是否为预设字符形式;若所述目标文件的后缀为“.bin”,且所述目标文件的文件头部为预设字符形式,则确定所述目标文件为BIN文件格式。3.根据权利要求2所述的方法,其特征在于,所述预设字符形式包括:"#!"两个字符或者是多个空白字符+"#!"的形式。4.根据权利要求1所述的方法,其特征在于,所述确定所述BIN文件的shell脚本和二进制数据的分界点位置的步骤包括:从所述BIN文件的起始位置逐字节遍历,找到第一个字节值0;从所述字节值0的位置往前回溯,找到有正则表达式为"^exit(|\t|\n)"的行;从找到的行的下一行开始往后遍历;若找到第一个非空白字符不是'#'的行,则遍历结束,确定所述非空白字符字符为二进制数据的开头,将所述非空白字符的位置作为shell脚本和二进制数据的分界点位置。5.根据权利要求4所述的方法,其特征在于,所述从找到的行的下一行开始往后遍历的步骤之后还包括:若找到空行或空白字符组成的行,则确定该行的内容为shell脚本的范围;若发现一行的内容中,第一个非空白字符是'#',则确定该行是shell脚本的注...

【专利技术属性】
技术研发人员:朱劲松万振华王颉
申请(专利权)人:深圳开源互联网安全技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1