发明内容
本发明针对现有技术的缺陷,提供了一种提取监控设备中数据的方法,能有效的解决上述现有技术存在的问题。
一种提取监控设备中数据的方法,包括以下步骤:
S1:加载磁盘,并读取磁盘0扇区信息;
S2:检测磁盘是否符合监控设备在存储文件时的基本结构,若符合则执行S3,不符合则执行S1;
S3:解析磁盘的ext3分区情况,并解析个分区的起始地址、大小、引导扇区地址;
S4:根据ext3格式的特点,解析分区中数据库文件search.db中的detail表,读取表中的数据记录,获取正常数据,并在fat32分区中找到对应的数据文件并标记;
S5:提取丢失数据和覆盖数据;
S51:解析ext3分区中数据库文件search.db中的detail表,遍历该表读取出未使用的块,并计算出该块对应的数据区地址,判断该地址的内容是否为空,不为空时按照监控设备的视频数据结构提取有效的视频数据;
S52:根据S4中读取的正常文件信息,遍历每个正常文件读取出已使用的字节数,并计算出该块对应的数据区地址,判断该地址的内容中未使用的部分是否为空,不为空时按照监控设备的视频数据结构提取有效的视频数据;
S6:按照正常数据、丢失数据、覆盖数据三种类别读取数据记录后,结合视频文件的格式结构,分类别提取其对应的有效数据;
S7:数据提取完成后,按照类型给提取出的视频数据进行标记;
S8:将提取出的数据按照帧的信息中的通道和视频数据的起始时间拼接,重组成完整的视频。
作为优选,S2判断是否符合监控设备在存储文件时的基本结构的条件有以下两条准则:
准则一:磁盘的MBR结构中包含2个分区,其类型分别为ext3、fat32;
准则二:ext3格式的分区容量远小于fat32格式的分区容量。
作为优选,S4读取正常数据的详细流程如下所述:
S41:读取磁盘的分区信息,主要包括划分的分区的起始地址、分区引导记录地址等信息;
S42:跳至ext3格式的分区起始,按照ext3格式读取并解析分区使用记录;
S44:读取ext3格式分区中的search.db文件中的detail表记录的正常数据文件的文件名、文件大小、文件记录视频的起始时间,遍历fat32分区中的读取detail中记录的全部数据文件;
S45:解析各正常文件中的各通道的数据内容起始地址和视频时间;
S46:按照S45中解析的结果,可根据每一块数据的文件头中的信息来读取对应数据的长度,来提取任何一表项记录的数据;
S47:按照视频数据的时间、通道等信息标记S46中提取的文件,完成对正常数据的提取。
作为优选,所述S51的详细流程如下所述:
S511:读取磁盘的分区信息,主要包括分区的起始地址、分区引导记录地址等信息,遍历每一个分区并读取信息;
S512:按照ext3文件系统的格式解析ext3格式分区的参数,并获取未使用空间的相关记录;
S513:判断分区是否存在空闲区域,若存在则跳至S514,否则跳至S518;
S514:读取分区空闲区域数据信息;
S515:按照视频数据的结构特征解析S514中提取数据;
S516:判断S515中解析的数据中是否有可播放的正常的视频数据文件,若存在跳至S517,否则跳至S518;
S517:提取S516中解析结果所对应的有效视频数据内容;
S518:按照视频数据的时间、通道等信息标记S516中提取的文件,完成对丢失数据的提取。
作为优选,所述S52的详细流程如下所述:
S521:读取磁盘的分区信息,主要包括分区的起始地址、分区引导记录地址等信息,遍历每一个分区并读取信息;
S522:按照ext3文件系统的格式解析ext3格式分区的参数,并获取分区已使用的相关记录;
S523:根据S522中解析结果读取数据库文件search.db中的detail表信息,读取各正常数据文件的数据记录;
S524:判断各数据文件是否存在未使用的字节,若存在则跳至S525,否则跳至S528;
S525:读取未使用字节的内容;
S526:按照视频数据的结构特征解析S525中读取的内容;
S527:判断S526中解析的数据是否存在符合泰康高科视频数据的结构特征中可播放的视频文件,若存在则跳至S528,否则跳至S529;
S528:提取S527中解析的结果;
S529:按照视频数据的时间、通道等信息标记S528中提取的文件,完成对覆盖数据的提取。
与现有技术相比本发明的优点在于:可以提取快速判断磁盘数据是否为泰康高科监控视频数据;提取磁盘数据中有效的视频数据文件,包括正常数据文件、丢失数据文件、覆盖数据文件;正确区分视频数据文件正常、丢失、覆盖的状态,帮助企业恢复数据和公安机关侦破案件。
具体实施方式
为使本发明的目的:技术方案及优点更加清楚明白,以下举实施例,对本发明做进一步详细说明。
下面介绍泰康高科监控设备在存储文件时的基本结构。监控设备在初始化磁盘时,磁盘被划分为2个区域(划分的区域以下简称为分区),一个分区采用的文件系统为ext3格式,另一个分区采用fat32分区格式,在存储视频数据时使用fat32分区,并且在分区中写入数据时会在该分区产生与之对应的存储记录数据库文件,该文件存储于ext3格式的分区。
泰康高科监控设备存储在存储在磁盘中真实数据的结构大致如下所述:正常的单个文件分为两部分,第一部分为6C756F20(luo)……206F756C(oul)的结构,该结构长度固定为0x2000字节,在该结构中各字节参数信息如图5所示;
文件以6C697520……2075696C作为文件头特征,该段数据的长度为0x80,当该文件头特征后的0x06字节的数据值为00000001674D时,文件是可播放的。文件头的具体结构包含如图6所示;
基于上述的存储文件的逻辑,本专利所采用的数据解析的思路是:按照磁盘的分区逐一读取,在读取每一个分区时按照正常数据文件、丢失数据文件、覆盖数据文件进行分类解析。在读取正常数据文件时,解析ext3格式的分区的数据库文件search.db中的detail表,从该表中解析已经使用的块记录,并读取其中视频数据;在读取丢失数据文件时,解析ext3格式的分区的数据库文件search.db中的detail表,从该表中解析未使用的块记录,并读取其中视频数据判断其是否为空,不为空时按照泰康高科嵌入式监控设备的视频数据结构提取有效的视频数据;在读取覆盖数据文件时,解析分区的正常文件中的使用记录,从该表中解析已使用的块记录及已使用块的字节数,然后读取其中未使用字节的视频数据,判断其是否为空,不为空时按照泰康高科嵌入式监控设备的视频数据结构提取有效的视频数据。
图1所示,下面详细介绍一种提取监控设备中数据的方法的具体步骤:
S1:加载磁盘,并读取磁盘0扇区信息;
S2:检测磁盘是否符合泰康高科监控设备在存储文件时的基本结构,若符合则跳至S3,不符合跳至S1。具体地,判断是否符合泰康高科监控设备在存储文件时的基本结构的条件有以下两条准则:
准则一:磁盘的MBR结构中包含2个分区,其类型分别为ext3、fat32;
准则二:ext3格式的分区容量远小于fat32格式的分区容量;
S3:解析磁盘的分区情况,并解析每一个分区的起始地址、大小、引导扇区地址;
S4:解析磁盘划分的ext3类型的分区,在分区的引导扇区中读取该分区的中记录的search.db文件,该文件中的detail表记录了整个磁盘中正常文件的信息,在表detail里详细的记录文件存储的位置及文件对应的起止时间,在表中folder列记录的是文件夹的编号,file列记录的是文件夹下文件的编号,fs_search列记录的是文件在硬盘中的编号,star_time列记录的是文件对应的开始时间,end_time记录的是文件对应的结束时间,star_time和end_time中的时间格式为linux时间戳,根据上述读取的信息遍历磁盘fat32类型的分区读取各数据文件对应的内容;
S5:该部分包括丢失数据和覆盖数据;
S51:解析磁盘划分的ext3类型的分区,读取分区中search.db中detail表中数据内容记录的磁盘中正常数据的空间,进而读取磁盘的空闲区域,判断该区域的内容是否为空,不为空时按照泰康高科监控设备的视频数据结构提取有效的视频数据;
S52:根据S4中解析结果,并计算出每个search.db中记录的数据文件的未使用字节数,判断该地址的内容中是否为空,不为空时按照泰康高科监控设备的视频数据结构提取有效的视频数据;
S6:按照正常数据、丢失数据、覆盖数据三种类别读取数据记录后,结合视频文件的格式结构,分类别提取其对应的有效数据;
S7:完成提取:数据提取完成后,按照类型给提取出的视频数据进行标记;
S8:将提取出的数据按照帧的信息中的通道和视频数据的起始时间拼接,重组成完整的视频。
如图2所示,S4读取正常数据的详细流程如下所述:
S41:读取磁盘的分区信息,主要包括划分的分区的起始地址、分区引导记录地址等信息,遍历每一个分区并读取信息;
S42:跳至ext3格式分区的起始地址,按照ext3格式读取并解析分区中的search.db文件;
S43:根据S42解析结果,判断分区使用情况,若detail表中有关于正常文件的记录则表示该分区已使用则跳至S44,否则跳至S47;
S44:读取ext3格式分区中的search.db文件中的detail表记录的正常数据文件的文件名、文件大小、文件记录视频的起始时间,遍历fat32分区中的读取detail中记录的全部数据文件;
S45:解析各数据文件中的数据信息,具体地,文件以6C697520……2075696C作为文件头特征,该段数据的长度为0x80,其中相对头部偏移0x28记录的是视频数据的通道号,相对头部偏移0x48记录的是视频数据的开始时间,相对头部偏移0x3C记录的是视频数据该块的长度;
S46:按照S45中解析的结果,可根据每一块数据的文件头中的信息来读取对应数据的长度,来提取任何一表项记录的数据;
S47:创建集合N,将S46中提取的数据按照视频的起始时间先后顺序存放在集合N,集合N的格式如{N0,N1,N2,…,Ni},且集合N中每一个元素属性包含了视频文件的起始时间、文件大小、通道以及文件偏移量等,完成对正常数据的提取;
如图3所示,S51:读取丢失数据时需要参照泰康高科监控机的视频数据格式来对空闲区域的数据加以验证,下面详细介绍泰康高科监控机的视频数据格式:文件以6C697520……2075696C作为文件头特征,该段数据的长度为0x80,其中相对头部偏移0x28记录的是视频数据的通道号,相对头部偏移0x48记录的是视频数据的开始时间,相对头部偏移0x3C记录的是视频数据该块的长度;在文件头特征后存储有可播放文件的标记,当该文件头特征后的0x06字节的数据值为00000001674D时,文件是可播放的,可根据此结构来校验空闲区域的数据是否符合该特征。提取丢失数据的详细流程如下所述:
S511:读取磁盘的区域划分信息,主要包括划分的区域的起始地址、分区引导记录地址等信息,遍历每一个分区并读取信息;
S512:按照ext3文件系统的格式解析各分区参数,根据search.db文件中的detail表记录的数据并获取分区空闲区域的相关记录;
S513:判断分区是否存在空闲区域,若存在则跳至S514,否则跳至S518;
S514:读取分区空闲区域数据内容;
S515:按照泰康高科视频数据的结构特征解析S514中提取数据包含泰康高科视频数据单元头特征结构6C697520……2075696C;
S516:判断S515中解析的数据是否存在符合泰康高科视频数据的结构特征中可播放的视频文件,若存在则跳至S517,否则跳至S518;
S517:按照泰康高科视频数据的结构特征提取S515中解析结果所对应的数据内容;
S518:创建集合L,将S46中提取的数据按照视频的起始时间先后顺序存放在集合N,集合N的格式以及集合L中每一个元素属性均与集合N一致,完成对丢失数据的提取。
如图4所示,S52:读取覆盖数据的详细流程如下所述:
S521:读取磁盘的区域划分信息,主要包括划分的区域(简称:分区)的起始地址、分区引导记录地址等信息,遍历每一个分区并读取信息;
S522:按照ext3文件系统的格式解析各分区参数,并获取分区记录的已使用区域的正常文件信息,此处解析可根据S44中内容;
S523:根据S522中解析结果读取各正常数据文件的使用记录,此处解析可参考S45中解析结果,计算出正常文件的有效字节数;
S524:可根据正常数据文件的有效字节数来判断各数据文件是否存在未使用的字节,若正常数据文件的大小>文件各个特征头记录的数据块大小之和则表示存在未使用的字节数则跳至S525,否则跳至S528;
S525:根据S524中判断结果再结合S523中解析的参数,使用计算公式:未使用字节数=文件大小-文件各个特征头记录的数据块大小之和,来计算并读取未使用字节的内容;
S526:按照泰康高科视频数据的结构特征解析S514中提取数据包含泰康高科视频数据单元头特征结构6C697520……2075696C;
S527:判断S526中解析的数据是否存在符合泰康高科视频数据的结构特征中可播放的视频文件,若存在则跳至S528,否则跳至S529;
S528:按照泰康高科视频数据的结构特征提取S515中解析结果所对应的数据内容;
S529:创建集合F,将S46中提取的数据按照视频的起始时间先后顺序存放在集合N,集合F的格式以及集合F中每一个元素属性均与集合N一致,完成对覆盖数据的提取。
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的实施方法,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。