Mp4格式的碎片文件恢复与重组的方法

文档序号:9687629阅读:1609来源:国知局
Mp4格式的碎片文件恢复与重组的方法
【技术领域】
[0001]本发明涉及信息安全技术领域,特别涉及一种MP4格式的碎片文件恢复与重组的方法。
【背景技术】
[0002]MP4格式是一种比较常见的视频格式,广泛的运用于手机视频拍摄和监控领域。在信息化迅速发展的21世纪,计算机技术日新月异,与人们的日常生活息息相关,存储设备数据丢失往往能给个人,甚至企业单位带来无尽的烦恼与麻烦,在涉及计算机数据存储工作中,如在企业工作中,企业数据丢失造成的损失是不可估量的,小则使公司无法开展工作,大则可能导致企业损失惨重而倒闭,特别是在信息化企业中,公司的电子资料就是他们的命脉,如能恢复这些资料将能拯救企业,让企业的损失降到最低;如在公安领域,这些数据也许就是案件的电子证据,如果检验人员能够获取更多计算机中的数据,那么就更加有利于案件的早日侦破,也能够向法庭提供更多的可靠的证据;这对取证,特别是数据恢复工作提出了更高的要求。
[0003]目前,市场上使用最为流行的数据取证商业软件有encase、WinHex、R_Stud1等,这些软件在常规文件记录存在,且文件连续是可以恢复的;一旦遇到文件记录不在或者文件存储位置不连续就无法恢复出这些文件中的数据或者关键信息。

【发明内容】

[0004]本发明针对现有技术的不足,提供一种MP4格式的碎片文件恢复与重组的方法,能够有效解决现有技术无法恢复MP4格式的碎片文件。
[0005]为解决以上问题,本发明采用的技术方案如下:一种MP4格式的碎片文件恢复与重组的方法,包括如下步骤:
[0006]001-加载磁盘分区或镜像文件,识别其分区类型,根据文件系统获取簇大小nCluster,根据簇位图来查找该分区或者镜像文件的空闲簇;
[0007]002-解析MP4文件结构,对MP4数据区mdat box进行重组,找出mdat连续文件。
[0008]作为优选,所述002的具体方法如下:
[0009]201-在空闲区检索关键字OxOOOOXXXX,按照是否存在此类型的关键字划分集合,存在为集合Y,不存在为集合N ,Y中元素的记录方式为(n, nPos),n表示簇号,nPos表示关键字在相对此簇起始的偏移地址,N中元素的记录方式为(η),n表示簇号;
[0010]202-Y(n)表示集合Y中的第η个元素,η初始化为1,取出F(n),得到F(n)中关键字出现的次数;
[0011]203-判断关键字出现的次数,如果> I次,转到204,等于I次转到212;
[0012]204-使用关键字出现的次数来初始化值nTimes;
[0013]205-根据关键字,读取出数据块大小nSize,如果nSize>(nCluster-Pos),转到206,否则转到209;
[0014]206-从关键字后面向后跳转nSize个字节;
[0015]207-判断跳转出现的数据是否为关键字,如果是关键字,则转到208,否则转到209;
[0016]208-标记上一个关键字到当前位置内的数据为有效数据,添加到集合R中,元素的记录方式为(NO ,Posl,Pos2),N0表示簇号的集合,元素表示为(nl,n2,n3......),Posl、Pos2
集合表示开始和结束相对于当前簇的偏移元素表示为(n,nPos);
[0017]209-将此簇开始位置到关键字之前的数据添加到集合E中,元素的记录方式为(η,nSegSize2),n表示簇号,nSegSize2表示当前块的大小,值为Pos。
[0018]210-执行操作nTimes = nTimes_l ;
[0019]211-判断当前nTimes是否等于I,如果不等于I,则转到204,否则转到212;
[0020]212-根据关键字,读取出数据块大小115126,如果115126>(11(]1118〖61—?08),转到213,否则转到214;
[0021]213-执行n = n+l,即丢弃当前簇;
[0022]214-将关键字之前的数据区块添加到集合E,将关键字之后的区块添加到集合B,集合B的元素记录方式为(n,nSize,nPos,nSegSizel) ,nSegSizel表示当前位置到此簇结束位置区块的大小,为nCluster-nPos ;
[0023 ] 215-当完成对集合Y的遍历后,得到集合B,E,N,完成重组。
[0024]作为优选,所述215的具体方法如下:
[0025]2151-默认所有集合都是按照簇号η来进行排序,从集合B中取出第一个元素;
[0026]2152-从集合E中取出第一个元素;
[0027]2153-判断nSize 三(nSegSizel+nSegSize2)mod nCluster是否成立,如果成立转到2155,否则转到2154;
[0028]2154-执行n = n+l,表示当前E(n)无效;
[0029]2155-执行[nSize-(nSegSizel+nSegSize2) ]/nCluster得到一个值i,表不需要集合N中按照Β(η).η开始连续向后取i个值,添加到B(n)和E(n)之间,然后将此添加到集合R中;
[0030]2156-遍历R中的元素,将簇号相同的元素进行合并。
[0031 ]本发明的有益效果如下:一个正常的mp4文件由多个box组成,一般分为管理区和数据区,本发明能处理管理区丢失的文件;可区分文件系统空闲区域,可准确查找到文件系统中所有mp4数据区的所有数据,通过特征数据中的大小对其进行重组,针对在存储介质中为非连续存储的数据碎片进行重组的数据恢复,数据恢复成功率高。mp4文件的数据区mdatbox按照关键字OxOOOOXXXX进行管理,XXXX按照Big-Endian的得出值为nSize,在此位置向后偏移nSize字节后的字节如果也是OxOOOOxxxx的方式,表示此数据为有效数据。
【附图说明】
[0032]图1为主流程示意图;
[0033]图2为002具体流程示意图;
[0034]图3为215具体流程意示意图。
【具体实施方式】
[0035]为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明做进一步详细说明。
[0036]针对上述提出的问题,本发明提出了一种MP4格式的碎片文件恢复与重组的方法,包括以下步骤:
[0037]001-加载磁盘分区或镜像文件,识别其分区类型,具体地支持的分区类型包括FAT32、NTFS、EXT2/3/4、UFS、HFS/HFS+,根据文件系统获取簇大小nCluster,根据簇位图来查找该分区或者镜像的空闲簇。
[0038]002-解析mp4文件结构,对mp4数据区mdat box进行重组,找出mdat连续文件,选择数据较大的连续文件。
[0039]201-在空闲区检索关键字OxOOOOXXXX,按照是否存在此类型的关键字进行集合划分,存在为集合Y,不存在为集合N ,Y中元素的记录方式为(n, nPos),n表示簇号,nPos表示关键字在相对此簇起始的偏移地址。N中元素的记录方式为(η),n表示簇号。
[0040]202-Y(n)表示集合Y中的第η个元素,η初始化为I。取出F(n),得到F(n)中关键字出现的次数。
[0041 ] 203-判断关键字出现的次数,如果> I次,转到204,等于I次转到212.[0042 ] 204-使用关键字出现的次数来初始化值nT ime s。
[0
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1