一种针对主控芯片的数据重组方法与流程

文档序号:19323614发布日期:2019-12-04 00:49阅读:397来源:国知局
一种针对主控芯片的数据重组方法与流程
本发明属于电子数据恢复与取证领域,涉及一种针对主控芯片的数据重组方法。
背景技术
:在电子数据存储领域,随着固态硬盘ssd容量的不断扩大以及固态硬盘ssd的成本不断的降低和读写速度上明显的优势,导致使用固态硬盘ssd的用户群不断增加,但是固态硬盘ssd的寿命要比机械硬盘低得多,如果固态硬盘ssd出现了硬件或者固件的损坏,需要恢复固态硬盘ssd中重要的用户数据,无论是修复硬件还是固件的损坏,目前都没有成熟的技术能够实现。具体地,现有技术在采用修复硬件或者固件的技术方案来恢复用户数据时具有两大缺点:1.所支持的固态硬盘ssd型号涵盖不全;2.在固态硬盘ssd损坏的情况下,根本无法通过正常手段读取主控芯片的数据,更谈不上恢复用户数据。现有技术中尚无一种针对主控芯片的数据重组方法,给此类包含主控芯片的存储设备的电子数据恢复与取证造成了巨大的困难。因此,急需一种针对主控芯片的数据重组方法,以弥补电子数据恢复与取证困难的不足。技术实现要素:本发明针对现有技术的不足问题,提出了一种针对主控芯片的数据重组方法,通过解析并找出各个块包含的通道号、物理块号及页号的对应关系,达到数据重组的目的。为便于描述,本发明可能包含如下术语:在主控芯片包含一个或多个通道(channel),每个通道包含一个或多个块(block),每个块包含一个或多个页(page),每个页包含一个页管理字段(或称系统区sa:systemarea,以下统称页管理字段)及多个扇区(sector),每个扇区包含固定字节长度的数据及固定字节长度的扇区管理字段(或称管理数据md:managedata,以下统称扇区管理字段)。本发明申请包括以下步骤:s100:获取所述主控芯片中各页的块号,包括以下步骤:s101:获取主控芯片的数据表,读取所述数据表中的布局,所述布局包括通道个数、各通道所包含的块数、各块所包含的页数、各页所包含的扇区数、页管理字段字节长度、扇区字节长度及扇区管理字段字节长度;s102:读取并解析所述主控芯片的块结构、页结构及扇区结构;s103:读取所述主控芯片中各页的页管理字段,读取所述页管理字段的第18、第19字节的内容作为第一判断值,读取所述页管理字段的第22至第25字节的内容作为第二判断值,读取所述页管理字段的第20、第21字节的内容作为当前页所在的块号;s200:判断当前块是否为有效块;s300:将块号按升序排序并确定首个有效块;s400:解析各个块包含的通道号、物理块号及页号的对应关系,如表1所示:表1:通道号、物理块号及页号的对应关系通道号物理块号页号1xp1x+1p2xp2x+1p1x+2048p1x+2049p2x+2048p2x+2049p3xp3x+1p4xp4x+1p3x+2048p3x+2049p4x+2048p4x+2049p其中,x的初始值为第一块中最小的物理块号,取值范围为0至2047;p为页号,取值范围为0至255;s500:确定当前块首扇区的偏移地址;s600:重组数据:将各块按块号降序排列,相同块的数据按表一所述关系排列,直至遍历完块号并完成重组。优选地,所述步骤s200包括以下步骤:s201:读取当前块中各页的第一判断值、第二判断值及块号;s202:判断当前块中各页的第一判断值、第二判断值及块号是否各个相同,如果是,执行步骤s300,否则,执行步骤s203;s203:统计当前块中各页的第一判断值、第二判断值及块号不全相同的页数;s204:判断第一判断值、第二判断值及块号不全相同的页数是否大于阀值,如果是,表示当前块为无效块,执行步骤s205,否则,执行步骤s300;s205:寻址下一块,执行步骤s201。优选地,所述表1中通道号、物理块号及页号具有如下循环规律:规律1:页号p连续出现16次作为一次循环,对应的通道号以1、1、2、2、1、1、2、2、3、3、4、4、3、3、4、4的顺序排列作为一次循环且对应的物理块号以x、x+1、x、x+1、x+2048、x+2049、x+2048、x+2049、x、x+1、x、x+1、x+2048、x+2049、x+2048、x+2049的顺序排列作为一次循环;规律2:p的初值为0且不大于255,每连续出现16次,p=p+1;规律3:当p的值大于255,p重新赋值为0,且x重新赋值为下一块号中最小的物理块号,并按上述规律1、规律2及规律3再次进行循环直至遍历完所有块号。优选地,所述步骤s500包括以下步骤:s501:判断当前块的任一物理块所包含的数据是否为全零,如果是,执行步骤s502,否则执行步骤s503;s502:寻址当前块的下一物理块,执行步骤s501;s503:记录数据为非零的当前物理块号,并判断当前块的任一页所包含的数据是否为全零,如果是,执行步骤s504,否则执行步骤s505;s504:寻址当前块的下一页,执行步骤s503;s505:记录数据为非零的当前页号,并根据所述步骤s503所记录的数据为非零的当前物理块号确定当前块首扇区的偏移地址=数据为非零的当前物理块的偏移地址+数据为非零的当前页的偏移地址。优选地,所述阀值为10。本发明的有益效果是解决了现有技术中尚无一种针对主控芯片的数据重组方法的技术问题。附图说明图1为本发明所提供的方法的总流程图;图2为本发明一个实施例中密钥块的数据结构示意图;图3为本发明一个实施例中确定首扇区的地址的流程图。具体实施方式本发明采用型号为sm2246xt的慧荣科技的主控芯片作为实施例。下面结合附图和实施例对本发明作进一步阐述。图1示出了本发明所提供的方法的总流程图。如图1所示,本发明的方法包括以下步骤:s100:获取主控芯片中各页的块号,包括以下步骤:s101:获取主控芯片的数据表,读取数据表中的布局,布局包括通道个数、各通道所包含的块数、各块所包含的页数、各页所包含的扇区数、页管理字段字节长度、扇区字节长度及扇区管理字段字节长度;以该主控芯片为例,其布局为一个通道包含4096块,一个块包含256页,一个页包含16个扇区,一个扇区字节长度为1098字节,其中,数据字节长度为1024字节,扇区管理字段的字节长度为74字节;页管理字段字节长度为48字节。s102:读取并解析主控芯片的块结构、页结构及扇区结构;图2示出了本发明一个实施例中密钥块的数据结构示意图。如图2所示,主控芯片包含一个或多个通道(channel);为简洁考虑,图中未示出通道(channel)。每个通道包含一个或多个块100(block),每个块100包含一个或多个页101(page),每个页101包含一个页管理字段1012(或称系统区sa:systemarea,以下统称页管理字段)及多个扇区1011(sector),每个扇区包含固定字节长度的数据10111及固定字节长度的扇区管理字段10112(或称管理数据md:managedata,以下统称扇区管理字段)。s103:读取如图2所示的主控芯片中各页的页管理字段1012的第18、第19字节的内容作为第一判断值,读取第22至第25字节的内容作为第二判断值,读取第20、第21字节的内容作为当前页所在的块号;s200:判断当前块是否为有效块,步骤s200包括以下步骤:s201:读取当前块中各页的第一判断值、第二判断值及块号;s202:判断当前块中各页的第一判断值、第二判断值及块号是否各个相同,如果是,执行步骤s300,否则,执行步骤s203;s203:统计当前块中各页的第一判断值、第二判断值及块号不全相同的页数;s204:判断第一判断值、第二判断值及块号不全相同的页数是否大于10页,如果是,表示当前块为无效块,执行步骤s205,否则,执行步骤s300;s205:寻址下一块,执行步骤s201。s300:将块号按升序排序并确定首个有效块;s400:解析各个块包含的通道号、物理块号及页号的对应关系,如表1所示:表1:通道号、物理块号及页号的对应关系通道号物理块号页号1xp1x+1p2xp2x+1p1x+2048p1x+2049p2x+2048p2x+2049p3xp3x+1p4xp4x+1p3x+2048p3x+2049p4x+2048p4x+2049p其中,x的初始值为第一块中最小的物理块号,取值范围为0至2047;p为页号,取值范围为0至255;表1中通道号、物理块号及页号具有如下循环规律:规律1:页号p连续出现16次作为一次循环,对应的通道号以1、1、2、2、1、1、2、2、3、3、4、4、3、3、4、4的顺序排列作为一次循环且对应的物理块号以x、x+1、x、x+1、x+2048、x+2049、x+2048、x+2049、x、x+1、x、x+1、x+2048、x+2049、x+2048、x+2049的顺序排列作为一次循环;规律2:p的初值为0且不大于255,每连续出现16次,p=p+1;规律3:当p的值大于255,p重新赋值为0,且x重新赋值为下一块号中最小的物理块号,并按上述规律1、规律2及规律3再次进行循环直至遍历完所有块号。例如,当x为1时,通道号、物理块号及页号的对应关系如下当p的值大于255,p重新赋值为0,且x重新赋值为下一块号中最小的物理块号,例如2,再次进行循环直至遍历完所有块号。如下是当x为2时,通道号、物理块号及页号的对应关系:s500:确定当前块首扇区的偏移地址,图3示出了本发明一个实施例中确定首扇区的地址的流程图。如图3所示,步骤s500包括以下步骤:s501:判断当前块的任一物理块所包含的数据是否为全零,如果是,执行步骤s502,否则执行步骤s503;s502:寻址当前块的下一物理块,执行步骤s501;s503:记录数据为非零的当前物理块号,并判断当前块的任一页所包含的数据是否为全零,如果是,执行步骤s504,否则执行步骤s505;s504:寻址当前块的下一页,执行步骤s503;s505:记录数据为非零的当前页号,并根据步骤s503所记录的数据为非零的当前物理块号确定当前块首扇区的偏移地址=数据为非零的当前物理块的偏移地址+数据为非零的当前页的偏移地址。s600:重组数据:将各块按块号降序排列,相同块的数据按表一关系排列,直至遍历完块号并完成重组。通过本发明提供的方法,解决了现有技术中尚无一种针对主控芯片的数据重组方法的技术问题。应当理解的是,本发明不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1