基于嵌入式安防设备的数据提取方法及装置与流程

文档序号:12363557阅读:138来源:国知局
基于嵌入式安防设备的数据提取方法及装置与流程

本发明属于数据恢复领域,具体涉及一种基于嵌入式安防设备的数据提取方法及装置。



背景技术:

国内经济的蓬勃发展带动了不少行业的发展,安保行业正是受益于经济发展增长趋势最为明显的行业之一。尤其是在视频监控技术不断发展的今天,高清监控视频、多角度视频技术等专业的监控设备在各个行业的多种场所都得到了有效地推广应用。视频监控设备为实现社会的安定和谐做出了巨大贡献。

嵌入式系统是一种完全嵌入受控器件内部,为特定应用而设计的专用操作系统,嵌入式系统监控机则是一个用于控制和监视摄像探头的装置。从整体性能上来看,嵌入式硬盘录像机表现出来了无比强大的优越性能,并且从目前的市场占有率上看,已经成为安防界的主流产品。

在发达国家,不少监控设备上面存储的数据都是经过多重备份以便确保其数据存储具备高度的安全性。然而,在国内,为了节省企业的开支以及降低管理上的难度,很多持有监控设备的单位并没有相应的数据安全措施,这就意味着一旦设备上存储的视频资料丢失或出现其它故障,将使得安防功能无法起到实际性作用。此外,在部分情况下,有不少案件是由于提供了最真实,最可靠的视频证据,成为了法院决断的依据,才得到了公正、高效的判决,因此对监控设备的数据提取与恢复具有重大意义。

由于监控视频的存储是设备厂商自定义的存储格式,因此传统的数据恢复 技术无法应用到监控机的视频数据提取与恢复;市面上现有技术无法恢复监控机的未使用区域的丢失文件、已使用区域中未被覆盖的碎片文件;即使能进行视频数据的恢复,但也无法对文件状态属性加以区分。

本发明涉及到的部分专业术语:

磁盘分区:在磁盘上划分几个逻辑部分,每一部分都称之为分区;

块:一个分区被分成大小相等,连续空间的区域;

文件分配表:映射到分区每个块的条目列表,在每个条目中记录了该条目映射的块的使用状况;

正常数据:是指在磁盘分区的文件分配表中有已使用的标记和已使用字节数的块中可正常播放的视频数据;

丢失数据:是指磁盘分区的文件分配表中标识为未使用区域的块所对应的地址中保存的可播放的有效视频数据;

覆盖数据:是指在磁盘分区的文件分配表中有已使用的标记的块中标记为未使用的中可正常播放的视频数据。



技术实现要素:

本发明针对现有技术的不足,提供了一种基于嵌入式安防设备的数据提取方法及装置,能够有效解决现有技术无法恢复监控机的未使用区域的丢失文件、已使用区域中未被覆盖的碎片文件;即使能进行视频数据的恢复,但也无法对文件属性加以区分等问题。

为解决以上问题,本发明采用的技术方案如下:一种基于嵌入式安防设备的数据提取方法,包括如下步骤:

S1加载磁盘,并读取磁盘第一个扇区信息;

S2检测磁盘是否符合嵌入式监控设备在存储文件时的基本结构,若符合则 跳至S3,否则跳至S1;

S3解析磁盘的分区情况,并解析每一个分区的起始地址、大小、引导扇区地址;

S4读取正常数据记录:依次解析磁盘划分的每一个分区,在分区的引导扇区中读取该分区的文件分配表的地址,遍历该表读取出已使用的块对应的视频数据的通道、起止时间、与该块相关的前一块和后一块地址、块已使用的字节数的信息,并计算出该块对应的数据区地址,读取该地址的相应数据;

S5读取非正常数据记录,非正常数据记录包括丢失数据和覆盖数据;

S6按照正常数据、丢失数据、覆盖数据三种类别读取数据记录后,结合视频文件的格式结构,分类别提取其对应的有效数据;

S7数据提取完成后,按照类型给提取出的视频数据进行标记。

作为优选,S4读取正常数据的详细流程如下所述:

S41读取磁盘的分区信息,主要包括划分的分区的起始地址、分区引导记录地址的信息,遍历每一个分区并读取信息;

S42跳至分区起始,读取分区引导记录,主要包括划分的区域的每扇区字节数、每块的扇区数、数据存储的第一个块号、文件分配表地址、块个数、数据区开始扇区的信息;

S43跳至文件分配表地址读取文件分配信息;

S44逐一读取文件分配表信息,判断各块空间是否被使用,若各块均未使用则跳至S42,否则则跳至S45;

S45读取块m的分配记录信息,其中初始值m=0,第一次读取时读取第一块的分配记录中的使用记录信息;

S46根据S45中读取的信息来判断该块是否已经被写入数据,若已经写入数据则跳至S47,否则跳至S411;

S47读取块的使用记录信息,包括块对应的视频数据的通道、起止时间、与该块相关的前一块和后一块地址、块已使用的字节数的信息,并计算出该块对应的数据区地址,读取该地址的相应数据;

S48根据S47读取的信息来判读该块的下一个块区域是否存在,若存在则跳至S49,否则跳至S410;

S49读取下一个块的地址信息,并计算对应的扇区地址;

S410创建已读取块的集合Ni,初始值i=0:创建一个集合,在集合中记录已经读取的块的编号,如果2个及以上的块是相互关联的则按照顺序依次写入集合Ni,集合Ni的格式如{0x00,0x01,…,0x0m};

S411使得S45所述的m=m+1,跳转到下一个块的分配记录地址;

S412根据S42中块个数来计算并判断下一个读取的块的地址是否已经达到文件分配表尾部,若已经达到则跳至S414,否则跳至S413;

S413读取该块的编号,并在Ni中验证该块是否已经被读取,若已经被读取则跳至S411,否则跳至S45;

S414创建正常文件集合N,将Ni写入集合N:将所有的集合Ni写入到集合N中,其格式如{N0,N1,N2,…,Ni};

S415将所有的正常文件依次写入集合N后,并对其加上正常数据标识N, 以便区别其他类型的数据文件。

作为优选,S5读取非正常数据记录的详细流程如下所述:

S51读取丢失数据记录:依次解析磁盘划分的每一个分区,在分区的引导扇区中读取该分区的文件分配表的地址,遍历该表读取出未使用的块,并计算出该块对应的数据区地址,判断该地址的内容是否为空,不为空时按照嵌入式监控设备的视频数据结构提取有效的视频数据;

S52读取覆盖数据记录:依次解析磁盘划分的每一个分区,在分区的引导扇区中读取该分区的文件分配表的地址,遍历该表读取出已使用的块的已使用的字节数,并计算出该块对应的数据区地址,判断该地址的内容中未使用的部分是否为空,不为空时按照嵌入式监控设备的视频数据结构提取有效的视频数据。

作为优选,S51读取丢失数据的详细流程如下所述:

S511读取磁盘的区域划分信息,主要包括分区的起始地址、分区引导记录地址的信息,遍历每一个分区并读取信息;

S512跳至分区起始,读取分区引导记录,主要包括分区的每扇区字节数、每块的扇区数、数据存储的第一个块号、文件分配表地址、块个数、数据区开始扇区的信息;

S513跳至文件分配表地址读取文件分配信息;

S514读取当前块m的分配记录信息,其中初始值m=0:第一次读取时读取第一块的分配记录中的使用记录信息;

S515读取块的记录信息中使用标记,若该块已使用则跳至S519,否则跳至 S516;

S516计算该块对应的数据地址,并判断其数据是否为空,若数据内容为空则跳至S519,否则跳至S517;

S517结合视频数据的格式,按照此结构来提取块内容中的有效视频文件;

S518创建已读取块集合Li,在集合中记录已读取块的编号,故Li格式如{0x00,0x01,…,0x0m};

S519使得S514所述的m=m+1,跳转到下一个块的分配记录地址;

S5110根据S512中块个数来计算并判断下一个读取的块的地址是否已经达到文件分配表尾部,若已经达到则跳至S5112,否则跳至S5111;

S5111读取该块的编号,并在Li中验证该块是否已经被读取,若已经被读取则跳至S519,否则跳至S514;

S5112创建丢失文件集合L,将所有的集合Li写入到集合L中,其格式如{L0,L1,L2,…,Li};

S5113将所有的丢失文件依次写入集合L后,并对其加上丢失数据标识L,以便区别其他类型的数据文件。

作为优选,S52读取覆盖数据的详细流程如下所述:

S521读取磁盘的区域划分信息,主要包括分区的起始地址、分区引导记录地址等信息,遍历每一个分区并读取信息;

S522跳至分区起始,读取分区引导记录,主要包括划分的区域的每扇区字节数、每块的扇区数、数据存储的第一个块号、文件分配表地址、块个数、数 据区开始扇区等信息;

S523跳至文件分配表地址读取文件分配信息;

S524逐一读取文件分配表信息,判断各块空间是否被使用,若各块均未使用则跳至S522,否则跳至S525;

S525读取块m的分配记录信息,其中初始值m=0,第一次读取时读取第一块的分配记录中的使用记录信息;

S526读取出已使用的块的已使用的字节数,并计算出该块对应的数据区地址和未使用的字节数,读取该块中未使用区域的内容;

S527判断未使用区域的内容是否为空,若为空则跳至S5210,否则跳至S528;

S528根据视频数据的格式提取块内容中的有效视频文件;

S529创建已读取块集合Fi,在集合中记录已读取块的编号,Fi的格式如{0x01};

S5210使得S525所述的m=m+1,跳转到下一个块的分配记录地址;

S5211根据S512中块个数来计算并判断下一个读取的块的地址是否已经达到文件分配表尾部,若已经达到则跳至S5213,否则跳至S5212;

S5212读取该块的编号,并在Fi中验证该块是否已经被读取,若已经被读取则跳至S5210,否则跳至S525;

S5213创建覆盖文件集合F,将所有的集合Fi写入到集合F中,其格式如{F0,F1,F2,…,Fi};

S5214将所有的覆盖文件依次写入集合F后,并对其加上覆盖数据标识F,以便区别其他类型的数据文件。

为了解决以上问题,本发明还提出了一种基于嵌入式安防设备的数据提取装置,包括:

磁盘加载模块:用于快速检索磁盘信息,判断磁盘是否为嵌入式监控设备产生数据磁盘,若是并列出磁盘的所有分区信息;

数据提取模块:用于根据需求自定义扫描磁盘中的视频数据文件,并可在扫描提取的结果中进行筛选操作。

作为优选,数据提取模块包含以下单元:

正常数据提取单元:用于按照主流程中提取正常数据的流程进行提取磁盘中正常数据文件,并按照存储顺序依次展示;

丢失覆盖数据提取单元:用于按照主流程中提取非正常数据的流程进行提取磁盘中丢失和覆盖数据文件,并按照存储顺序依次展示;

所有数据提取单元:用于按照主流程中提取正常数据和非正常数据的流程进行提取磁盘中所有数据文件,在提取的结果中分别标记数据文件的属性,并按照存储顺序依次展示;

筛选单元:用于在数据提取模块的扫描结果中,根据数据文件的属性、数据文件记录视频的时间、数据文件记录视频的通道和数据文件名称进行筛选。

作为优选,所述分区信息包括分区的起始地址、分区大小的信息。

作为优选,还包括RAW扫描单元:用于按照不同的视频文件格式类型扫描 接入的磁盘数据,并按不同视频格式类型分类展示扫描结果。

作为优选,还包括导出单元,用于在扫描结果中,将提取的数据恢复到自定义的地址。

本发明的有益效果如下:本发明采用了按照磁盘的分区逐一读取的方法,在读取每一个分区时按照正常数据文件、丢失数据文件、覆盖数据文件进行分类解析。在读取正常数据文件时,解析分区的文件分配记录表,从该表中解析已经使用的块记录,并读取其中视频数据;在读取丢失数据文件时,解析分区的文件分配记录表,从该表中解析未使用的块记录,并读取其中视频数据判断其是否为空,不为空时按照嵌入式监控设备的视频数据结构提取有效的视频数据;在读取覆盖数据文件时,解析分区的文件分配记录表,从该表中解析已使用的块记录及已使用块的字节数,然后读取其中未使用字节的视频数据,判断其是否为空,不为空时按照嵌入式监控设备的视频数据结构提取有效的视频数据。基于上述方法,本发明可以快速判断磁盘数据是否为特定厂商的监控视频数据格式,比如大华、海康、龙视安等厂商的监控数据格式;也可以提取出磁盘数据中有效的视频数据文件,包括正常数据文件、丢失数据文件和覆盖数据文件;还可以正确区分视频数据文件正常、丢失、覆盖的状态。

附图说明

图1为磁盘数据解析主流程图;

图2为S4读取正常数据记录流程图;

图3为S51读取丢失数据记录流程图;

图4为S52读取覆盖数据记录流程图;

图5为磁盘分区结构示意图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明做进一步详细说明。

针对上述提出的问题,本发明提出了一种基于针对嵌入式安防设备的数据提取方法及装置,该发明不仅能高效地提取正常的视频数据,还能将非正常的数据进行有效的恢复。

下面以大华监控设备为为例对本发明进行详细说明,先介绍大华嵌入式监控设备在存储文件时的基本结构。监控设备在初始化磁盘时,磁盘被划分为n(n=0,1,2…)个区域(划分的区域以下简称为分区),每一个分区被划分成大小相同的块(类似于windows操作系统中fat32文件系统的簇)来作为存储数据基本单元,每一个块是有固定数量的扇区组成,在存储视频数据时依次使用每个分区,并且在分区中写入数据时会在该分区产生与之对应的块分配记录,来管理该分区空间的使用情况。

基于上述的存储文件的逻辑,本发明所采用的数据解析的原理如下:按照磁盘的分区逐一读取,在读取每一个分区时按照正常数据文件、丢失数据文件、覆盖数据文件进行分类解析。在读取正常数据文件时,解析分区的文件分配记录表,从该表中解析已经使用的块记录,并读取其中视频数据;在读取丢失数据文件时,解析分区的文件分配记录表,从该表中解析未使用的块记录,并读取其中视频数据判断其是否为空,不为空时按照大华嵌入式监控设备的视频数据结构提取有效的视频数据;在读取覆盖数据文件时,解析分区的文件分配记录表,从该表中解析已使用的块记录及已使用块的字节数,然后读取其中未使用字节的视频数据,判断其是否为空,不为空时按照大华嵌入式监控设备的视频数据结构提取有效的视频数据。

为了详细说明本专利的发明方法,结合附图进一步阐述。

实施例:为了更为方便的阐述本发明中的方法,本例使用大华文件系统4.1版本(DHFS4.1)为例进行阐述,该格式的磁盘结构如图5所示,各部分的详细意义如下:

磁盘标记:记录磁盘所使用的大华文件系统版本信息,该标记位于磁盘0x0扇区,偏移地址0x00~0x07;

主分配记录:记录磁盘划分分区的信息,该记录位于磁盘0x1E扇区,第一个分区表项的相对0x1E扇区起始偏移地址为0x48,每个分区信息表项的长度为0x40,每个分区信息表项包含了分区的起始地址和分区引导记录相对起始地址的偏移地址;

分区结构:在磁盘中每个分区结构是完全一致的,在此仅针对一个分区的结构进行阐述,分区的结构主要包括分区引导记录、文件分配表、数据存储区,分区引导记录中主要记录了每扇区字节数、每块扇区数、文件首块号、目录文件位图开始扇区、文件分配表的开始扇区、数据存储区开始扇区、块个数、数据存储区备份的开始扇区、通道个数等信息,文件分配表是对数据存储区是否使用的一个管理区域,文件分配表项的长度为0x20,一个表项对应数据存储区的一个块,每个表项中记录对应块的是否使用标记、块中记录的视频数据的通道、块中记录的视频数据的开始时间、块中记录的视频数据的结束时间、块中记录的视频数据上一个块序号、块中记录的视频数据下一个块序号,数据存储区记录真实的视频数据文件。

实施例1:

一种基于嵌入式安防设备的数据提取方法,包括如下步骤:

S1加载磁盘,并读取磁盘第一个扇区信息;

S2检测磁盘是否符合嵌入式监控设备在存储文件时的基本结构,若符合则跳至S3,否则跳至S1;

S3解析磁盘的分区情况,并解析每一个分区的起始地址、大小、引导扇区地址;

S4读取正常数据记录:依次解析磁盘划分的每一个分区,在分区的引导扇区中读取该分区的文件分配表的地址,遍历该表读取出已使用的块对应的视频数据的通道、起止时间、与该块相关的前一块和后一块地址、块已使用的字节数的信息,并计算出该块对应的数据区地址,读取该地址的相应数据;

S5读取非正常数据记录,非正常数据记录包括丢失数据和覆盖数据;

S6按照正常数据、丢失数据、覆盖数据三种类别读取数据记录后,结合视频文件的格式结构,分类别提取其对应的有效数据;

S7数据提取完成后,按照类型给提取出的视频数据进行标记。

进一步地,S4读取正常数据的详细流程如下所述:

S41读取磁盘的分区信息,主要包括划分的分区的起始地址、分区引导记录地址的信息,遍历每一个分区并读取信息;

S42跳至分区起始,读取分区引导记录,主要包括划分的区域的每扇区字节数、每块的扇区数、数据存储的第一个块号、文件分配表地址、块个数、数据区开始扇区的信息;

S43跳至文件分配表地址读取文件分配信息;

S44逐一读取文件分配表信息,判断各块空间是否被使用,若各块均未使 用则跳至S42,否则则跳至S45;

S45读取块m的分配记录信息,其中初始值m=0,第一次读取时读取第一块的分配记录中的使用记录信息;

S46根据S45中读取的信息来判断该块是否已经被写入数据,若已经写入数据则跳至S47,否则跳至S411;

S47读取块的使用记录信息,包括块对应的视频数据的通道、起止时间、与该块相关的前一块和后一块地址、块已使用的字节数的信息,并计算出该块对应的数据区地址,读取该地址的相应数据;

S48根据S47读取的信息来判读该块的下一个块区域是否存在,若存在则跳至S49,否则跳至S410;

S49读取下一个块的地址信息,并计算对应的扇区地址;

S410创建已读取块的集合Ni,初始值i=0:创建一个集合,在集合中记录已经读取的块的编号,如果2个及以上的块是相互关联的则按照顺序依次写入集合Ni,集合Ni的格式如{0x00,0x01,…,0x0m};

S411使得S45所述的m=m+1,跳转到下一个块的分配记录地址;

S412根据S42中块个数来计算并判断下一个读取的块的地址是否已经达到文件分配表尾部,若已经达到则跳至S414,否则跳至S413;

S413读取该块的编号,并在Ni中验证该块是否已经被读取,若已经被读取则跳至S411,否则跳至S45;

S414创建正常文件集合N,将Ni写入集合N:将所有的集合Ni写入到集合 N中,其格式如{N0,N1,N2,…,Ni};

S415将所有的正常文件依次写入集合N后,并对其加上正常数据标识N,以便区别其他类型的数据文件。

进一步地,S5读取非正常数据记录的详细流程如下所述:

S51读取丢失数据记录:依次解析磁盘划分的每一个分区,在分区的引导扇区中读取该分区的文件分配表的地址,遍历该表读取出未使用的块,并计算出该块对应的数据区地址,判断该地址的内容是否为空,不为空时按照嵌入式监控设备的视频数据结构提取有效的视频数据;

S52读取覆盖数据记录:依次解析磁盘划分的每一个分区,在分区的引导扇区中读取该分区的文件分配表的地址,遍历该表读取出已使用的块的已使用的字节数,并计算出该块对应的数据区地址,判断该地址的内容中未使用的部分是否为空,不为空时按照嵌入式监控设备的视频数据结构提取有效的视频数据。

进一步地,S51读取丢失数据的详细流程如下所述:

S511读取磁盘的区域划分信息,主要包括分区的起始地址、分区引导记录地址的信息,遍历每一个分区并读取信息;

S512跳至分区起始,读取分区引导记录,主要包括分区的每扇区字节数、每块的扇区数、数据存储的第一个块号、文件分配表地址、块个数、数据区开始扇区的信息;

S513跳至文件分配表地址读取文件分配信息;

S514读取当前块m的分配记录信息,其中初始值m=0:第一次读取时读取 第一块的分配记录中的使用记录信息;

S515读取块的记录信息中使用标记,若该块已使用则跳至S519,否则跳至S516;

S516计算该块对应的数据地址,并判断其数据是否为空,若数据内容为空则跳至S519,否则跳至S517;

S517结合视频数据的格式,按照此结构来提取块内容中的有效视频文件;

S518创建已读取块集合Li,在集合中记录已读取块的编号,故Li格式如{0x00,0x01,…,0x0m};

S519使得S514所述的m=m+1,跳转到下一个块的分配记录地址;

S5110根据S512中块个数来计算并判断下一个读取的块的地址是否已经达到文件分配表尾部,若已经达到则跳至S5112,否则跳至S5111;

S5111读取该块的编号,并在Li中验证该块是否已经被读取,若已经被读取则跳至S519,否则跳至S514;

S5112创建丢失文件集合L,将所有的集合Li写入到集合L中,其格式如{L0,L1,L2,…,Li};

S5113将所有的丢失文件依次写入集合L后,并对其加上丢失数据标识L,以便区别其他类型的数据文件。

进一步地,S52读取覆盖数据的详细流程如下所述:

S521读取磁盘的区域划分信息,主要包括分区的起始地址、分区引导记录地址等信息,遍历每一个分区并读取信息;

S522跳至分区起始,读取分区引导记录,主要包括划分的区域的每扇区字节数、每块的扇区数、数据存储的第一个块号、文件分配表地址、块个数、数据区开始扇区等信息;

S523跳至文件分配表地址读取文件分配信息;

S524逐一读取文件分配表信息,判断各块空间是否被使用,若各块均未使用则跳至S522,否则跳至S525;

S525读取块m的分配记录信息,其中初始值m=0,第一次读取时读取第一块的分配记录中的使用记录信息;

S526读取出已使用的块的已使用的字节数,并计算出该块对应的数据区地址和未使用的字节数,读取该块中未使用区域的内容;

S527判断未使用区域的内容是否为空,若为空则跳至S5210,否则跳至S528;

S528根据视频数据的格式提取块内容中的有效视频文件;

S529创建已读取块集合Fi,在集合中记录已读取块的编号,Fi的格式如{0x01};

S5210使得S525所述的m=m+1,跳转到下一个块的分配记录地址;

S5211根据S512中块个数来计算并判断下一个读取的块的地址是否已经达到文件分配表尾部,若已经达到则跳至S5213,否则跳至S5212;

S5212读取该块的编号,并在Fi中验证该块是否已经被读取,若已经被读取则跳至S5210,否则跳至S525;

S5213创建覆盖文件集合F,将所有的集合Fi写入到集合F中,其格式如{F0,F1,F2,…,Fi};

S5214将所有的覆盖文件依次写入集合F后,并对其加上覆盖数据标识F,以便区别其他类型的数据文件。

实施例2:

为了解决以上问题,本发明还提出了一种基于嵌入式安防设备的数据提取装置,包括:

磁盘加载模块:用于快速检索磁盘信息,判断磁盘是否为嵌入式监控设备产生数据磁盘,若是并列出磁盘的所有分区信息;

数据提取模块:用于根据需求自定义扫描磁盘中的视频数据文件,并可在扫描提取的结果中进行筛选操作。

进一步地,数据提取模块包含以下单元:

正常数据提取单元:用于按照主流程中提取正常数据的流程进行提取磁盘中正常数据文件,并按照存储顺序依次展示;

丢失覆盖数据提取单元:用于按照主流程中提取非正常数据的流程进行提取磁盘中丢失和覆盖数据文件,并按照存储顺序依次展示;

所有数据提取单元:用于按照主流程中提取正常数据和非正常数据的流程进行提取磁盘中所有数据文件,在提取的结果中分别标记数据文件的属性,并按照存储顺序依次展示;

筛选单元:用于在数据提取模块的扫描结果中,根据数据文件的属性、数据文件记录视频的时间、数据文件记录视频的通道和数据文件名称进行筛 选。

进一步地,所述分区信息包括分区的起始地址、分区大小的信息。

进一步地,还包括RAW扫描单元:用于按照不同的视频文件格式类型扫描接入的磁盘数据,并按不同视频格式类型分类展示扫描结果。

进一步地,还包括导出单元,用于在扫描结果中,将提取的数据恢复到自定义的地址。

本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的实施方法,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1