基于分块迭代的网络破损文件还原方法及系统的制作方法

文档序号:9249237阅读:327来源:国知局
基于分块迭代的网络破损文件还原方法及系统的制作方法
【技术领域】
[0001]本发明涉及计算机网络数据还原领域,特别涉及一种基于分块迭代的网络破损文件还原方法系统。
【背景技术】
[0002]由于网络传输的不稳定性,文件在传输过程中经常容易出现错误,如丢包、追包等,导致得到的文件非完整文件,即破损文件,而对于破损文件的进一步操作,如依赖于恶意代码特征库的网络病毒监控系统对破损文件的恶意代码检测、文件解析器对破损文件的解析等,都可能出现异常错误。如破损文件为恶意代码文件,且其恶意代码部分恰巧被破损时,导致恶意代码特征被破坏,从而依赖于恶意代码特征库的网络病毒监控系统可能检测不到具有恶意代码的破损文件。
[0003]破损文件的还原效果与还原方法密切相关,而目前对于网络破损文件的还原方法比较少,现有的还原方法主要着重于网络数据包级别的文件还原,如基于TCP数据包的网络探针还原等,但其无法到到对文件进行完整还原的目的,因此需要一种能够有效还原文件的方法。

【发明内容】

[0004]本发明提供了一种基于分块迭代的网络破损文件还原方法及系统,解决了网络传输过程中由于丢包等问题导致文件破损的问题,能够有效的将破损文件还原。
[0005]基于分块迭代的网络破损文件还原方法,包括:
a.获取待还原文件的文件样本集,所述文件样本集为来源于同一网络的待还原的样本文件集合;
b.确定对文件样本集中各文件的分块数,计算平均分块大小;所述文件样本集中各文件的分块数可以任意指定,但分块数越多对文件的分块粒度越细,还原效果越好,计算平均分块大小时,利用样本集中最大文件的大小与预设的分块数进行计算;
c.根据平均分块大小,对文件样本集中的各文件进行分块,并计算各文件分块对应字节码序列的HASH值;在进行分块时,由于各文件样本大小可能不同,因此一些样本文件的最后一块大小可能不等于平均分块大小;
d.建立文件样本集中各文件、文件分块及对应HASH的索引列表;
e.循环逐层对比文件样本集中各文件同一层文件分块的HASH值,选择HASH值相同数量最多的文件分块作为待还原文件当前层的还原文件块,各层还原文件块组成还原文件;
f.计算还原文件的破损率,如果破损率超过预设值,则放弃当前还原文件,返回步骤b,重新确定对文件样本集中各文件的分块数;否则,根据索引列表,找到还原文件各层还原文件块对应文件分块的字节码序列,得到还原后的文件。
[0006]所述的方法中,其中步骤e,选择HASH值相同数量最多的文件分块作为待还原文件当前层的还原文件块,若HASH值均不相同,则定位前一次被选作还原文件块的文件分块所属文件,获取所属文件的当前层的文件分块作为待还原文件当前层的还原文件块。
[0007]在一些情况下,所捕获的文件样本集中的文件,来源于同一网络的非同一时间的样本,因此如果在这段时间内原始文件进行过更新,仅通过上述方法,无法分别得到更新前后的还原文件,因此在所述的方法中,将步骤e替换为:
初始化文件样本集中各文件分类,将文件样本集中所有文件归为一类;
循环逐层遍历文件样本集中各文件同一层文件分块的HASH值,获得当前层的HASH
值;
对比当前层HASH值,依据初始化分类或上层文件分类,计算同一分类下HASH值相同的文件分块的数量;
遍历每个分类下HASH值相同的文件分块数量,并判断是否大于1,如果是,则产生新的文件分类,否则丢弃后续文件分块;
判断是否已遍历到最后一层,如果是,则依据文件分类记录各文件分类下各层的还原文件块,组成还原文件,否则继续遍历下一层文件分块;
删除重复的还原文件。由于在迭代还原过程中产生了多个分类,最终的每个分类都能够还原为一个文件,因此需要对这些文件进行筛选,在还原过程中,删除重复的文件,重复文件的判断方法可以通过文件分块进行比较,也可以计算相应的HASH值进行确定。
[0008]在上述的方法中,由于丢弃了 HASH值相同数量等于I的文件分块,其迭代计算效率较高,但在一些情况下可能存在还原不准确的情况,因此基于上述方法,将所述的方法中,所述遍历每个分类下HASH值相同的文件分块数量,并判断是否大于1,如果是,则产生新的文件分类,否则丢弃后续文件分块,替换为:
遍历每个分类下HASH值相同的文件分块数量,并判断是否大于1,如果是,则产生新的文件分类,否则将所述文件分块的后续文件块保存到其他文件分类下,用于下一层还原。SP,如果HASH只相同的文件分块数量等于1,则将其剩余的文件分块存储于下一层的每一个分类中,参与下一层的迭代。
[0009]所述的方法中,步骤f中,在判断破损率是否超出预设值之前,选择破损率最低的还原文件。
[0010]所述的方法中,所述破损率为不匹配的文件分块数与文件样本集中各文件分块数的比值,其中不匹配的文件分块为,各文件同一层文件分块的HASH值均不相等的块。
[0011]本发明还提供了一种基于分块迭代的网络破损文件还原系统,包括:
样本获取单元,获取待还原文件的文件样本集,所述文件样本集为来源于同一网络的待还原的样本文件集合;
分块计算单元,确定对文件样本集中各文件的分块数,计算平均分块大小;
HASH计算单元,根据平均分块大小,对文件样本集中的各文件进行分块,并计算各文件分块对应字节码序列的HASH值;
索引单元,建立文件样本集中各文件、文件分块及对应HASH的索引列表;
迭代计算单元,循环逐层对比文件样本集中各文件同一层文件分块的HASH值,选择HASH值相同数量最多的文件分块作为待还原文件当前层的还原文件块,各层还原文件块组成还原文件;
文件还原单元,计算还原文件的破损率,如果破损率超过预设值,则放弃当前还原文件,返回分块计算单元,重新确定对文件样本集中各文件的分块数;否则,根据索引列表,找到还原文件各层还原文件块对应文件分块的字节码序列,得到还原后的文件。
[0012]所述的系统中,迭代计算单元中中,选择HASH值相同数量最多的文件分块作为待还原文件当前层的还原文件块,若HASH值均不相同,则定位前一次被选作还原文件块的文件分块所属文件,获取所属文件的当前层的文件分块作为待还原文件当前层的还原文件块。
[0013]所述的系统中,将迭代计算单元内容替换为:
初始化文件样本集中各文件分类,将文件样本集中所有文件归为一类;
循环逐层遍历文件样本集中各文件同一层文件分块的HASH值,获得当前层的HASH
值;
对比当前层HASH值,依据初始化分类或上层文件分类,计算同一分类下HASH值相同的文件分块的数量;
遍历每个分类下HASH值相同的文件分块数量,并判断是否大于1,如果是,则产生新的文
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1