技术新讯 > 计算推算,计数设备的制造及其应用技术 > 一种获取西数Marvell硬盘中ROM文件的解密数据体集合的方法与流程  >  正文

一种获取西数Marvell硬盘中ROM文件的解密数据体集合的方法与流程

  • 国知局
  • 2024-07-31 23:20:34

本发明属于信息安全及数据恢复领域,涉及一种获取西数marvell硬盘中rom文件的解密数据体集合的方法。

背景技术:

1、硬盘是高度复杂尖端的装置,它结合了电磁、机械和电子方面的技术,以非常高的密度存储信息。硬盘技术使个人电脑、电影点播、数字录像机(dvr)和数字音乐点唱机的开发成为可能,并大大促进了数字相机和摄像机的普及。此外,互联网上的所有的信息都可以存在硬盘上。

2、西数是数据存储业的排头兵,硬盘业的领头羊。西数硬盘的市场占有量也相当大。其中,采用marvell一直是主控领域的佼佼者,sata时代的王者,性能和稳定性都很好。而采用marvell主控的西数硬盘的占有率也很高。

3、但是,由于marvell主控的西数硬盘在出现故障后不能读写数据。因此,如果不能对故障硬盘进行恢复,则会造成用户数据的丢失。但要修复故障硬盘,必须获取硬盘的rom文件,而rom文件中有效的数据部分是管理头及数据体,其中,部分rom文件是加锁的rom文件,如果不能解锁,即使获取到rom文件中管理头及数据体,也不能修复故障硬盘。

4、题为《一种获取rom文件中管理头及数据体的方法》、申请号为202311580695.0、申请日期为2023年11月24日的发明申请公开了获取rom文件中管理头及数据体的方法。但是,如果所获取rom文件中管理头及数据体未解密的话,就不能更新并重构用以修复故障硬盘所需的rom文件,因而不能恢复marvell主控的西数硬盘。而在获取rom文件中管理头及数据体并解密的过程中,需要获取西数marvell硬盘中rom文件的解密数据体集合。

5、现有技术中,针对marvell主控的西数硬盘,在获取rom文件中管理头及数据体并解密的过程中,目前尚无一种获取西数marvell硬盘中rom文件的解密数据体集合的方法。

技术实现思路

1、本技术针对现有的技术问题,提供一种获取西数marvell硬盘中rom文件的解密数据体集合的方法,因而能够获取rom文件中管理头及数据体并解密,从而达到恢复marvell主控的西数硬盘的目的。

2、本技术将题为《一种获取rom文件中管理头及数据体的方法》、申请号为202311580695.0、申请日期为2023年11月24日的发明申请的全部内容通过引用纳入本发明申请中。

3、本技术所提供的方法包括以下步骤:

4、s100:采用获取rom文件中管理头及数据体的方法,获取所述硬盘rom文件所包含的管理头及数据体,并生成源数据,其中,所述硬盘为西数

5、marvell硬盘;

6、s200:初始化并获取解密后数据的字节长度:源索引、目标索引、第一计数器均赋值为0,设置下标索引,获取解密后数据的字节长度,其中,

7、下标索引设置为0xfc4;

8、获取源数据前4字节的内容,作为解密后数据的字节长度,第一计数器的值自加4;

9、s300:获取1字节的解密值,包括以下步骤:

10、s301:寻址并获取数据i:以第二数据的起始地址为首地址,向后偏移0x224c字节并获取连续4字节的内容,作为数据i的值;

11、s302:判断数据i的值是否小于0x273,如果是,执行步骤s303,否则,执行步骤s305;

12、s303:采用获取位加密数据中位数据的方法且位长度为1,获取输出值数据o作为位数据的值;

13、s304:以0x1884加数据i的和,再加数据o的和作为偏移量,以第二数据的起始地址为首地址,向后偏移并获取连续4字节的内容,赋值给数据i,执行步骤s302;

14、s305:数据i减0x273的差,赋值给解密值;

15、s400:填入解密数据,包括以下步骤:

16、s401:判断解密值是否大于或等于0x100,如果是,执行步骤s402,否则,执行步骤s40a;

17、s402:采用获取位加密数据中位数据的方法且位长度为8,获取输出值数据o的值并赋值给数据h;

18、s403:寻址并赋值数据j:以0x100加数据h的和作为偏移量,以第一数据的起始地址为首地址,向后偏移并获取1字节的内容,将所获取的内容左移6bit后的值,作为数据j;

19、s404:以数据h的值作为偏移量,以第一数据的起始地址为首地址,向后偏移并获取1字节的内容,所获取的内容减2的差赋值给数据k;

20、s405:获取数据l的值:

21、采用获取位加密数据中位数据的方法且位长度为数据k,获取输出值数据o;

22、计算数据h的值左移后,与0x3f进行与运算后的值,其中,左移的位数等于数据k的值;

23、数据o加与运算后的值之和,与数据j进行或运算后的值,所获取的值赋值给数据l;

24、s406:获取数据p的值:下标索引减去数据l的值,再减去1的差,与0xfff进行运算后的值,作为数据p的值;

25、s407:将数据p的值减去0xfe的差再加1之和赋值给数据q;第一计数器自加数据q的值;数据t赋值为0;

26、s408:判断当前数据q的值是否为零,如果否,执行步骤s409,否则,执行步骤s500;

27、s409:获取解密值:以数据p的值加数据t的值之和,与0xfff进行与运算,所获得与运算的值作为偏移量,以第三数据的起始地址为首地址,向后偏移并获取1字节的内容,作为解密值;

28、s40c:以目标索引为偏移量,以目标数据的起始地址为首地址,向后偏移并将寻址的1字节内容赋值为解密值;

29、s40d:目标索引的值自加1;

30、以下标索引为偏移量,以第三数据的起始地址为首地址,向后偏移并将寻址的1字节内容赋值为解密值;

31、下标索引加1的和,再与0xfff进行与运算,所获得与运算的值赋值给下标索引;

32、数据t的值自加1;

33、据q的值自减1;

34、执行步骤s408

35、s40a:以目标索引为偏移量,以目标数据的起始地址为首地址,向后偏移并将寻址的1字节内容赋值为解密值;

36、s40b:目标索引的值自加1;

37、以下标索引为偏移量,以第三数据的起始地址为首地址,向后偏移并将寻址的1字节内容赋值为解密值;

38、下标索引加1的和,再与0xfff进行与运算,所获得与运算的值赋值给下标索引;

39、第一计数器的值自加1,执行步骤s500;

40、s500:判断第一计数器是否大于或等于解密后数据的字节长度,如果是,输出目标数据并结束流程,否则,执行步骤s300。

41、优选地,第一数据的获取包括以下步骤:

42、sa0:初始化并设置运算数据:

43、下标a、下标b均赋初值为0,第一数据为空,运算数据设置为0x33334445,0x22223333,0x22222222,0x11111111,0x11111111,0x11111111,0x0,0x0,将运算数据的第一个值赋给第一数值;

44、sa1:判断下标a与0x7进行与运算后结果是否等于0,如果是,执行步骤sa3,否则,执行步骤sa2;

45、sa2:按顺序取出运算数据下一值赋给第一数值;

46、sa3:第一数值与0xf进行与运算后的值,作为左移位数,将0x01左移该位数后的值减1的差,作为第二数值;

47、sa4:判断第二数值是否大于或等于0,如果是,执行步骤sa5,否则,执行步骤sa7;

48、sa5:以0x100加下标b的值作为偏移量,以第一数据的起始地址为首地址,向后偏移并寻址,将下标a的值赋给当前所寻址的1字节,下标b自加1,第二数值自减1;

49、sa6:判断第二数值是否不等于-1,如果是,执行步骤sa5,否则,执行步骤sa7;

50、sa7:第一数值的右移4位,下标a自加1;

51、sa8:判断下标a是否不等于0x40,如果是,执行步骤sa1,否则,执行步骤sa9;

52、sa9:下标a赋值为0xb71a,下标b赋值为0,第一数值赋值为3;

53、sa10:下标a与0x7进行与运算后的结果再乘以0x10,所获得的值赋给第二数值;

54、sa11:以下标b的值作为偏移量,以第一数据的起始地址为首地址,向后偏移并寻址,将第一数值赋给当前所寻址的1字节,下标b自加1,第二数值自减1;

55、sa12:判断第二数值是否为0,如果是,执行步骤sa13,否则,执行步骤sa11;

56、sa13:第一数值自加1,下标a的值右移3位;

57、sa14:判断下标a是否不等于0,如果是,执行步骤sa10,否则,结束流程。

58、优选地,第二数据的获取包括以下步骤:

59、sb0:初始化:下标a、下标b均赋初值为0,第二数据为空;

60、sb1:以下标a乘以4的积作为偏移量,以第二数据的起始地址为首地址,向后偏移并寻址,将所寻址地址的连续4字节内容赋值为1;

61、以0x1884加下标a的和再乘以4的积作为偏移量,以第二数据的起始地址为首地址,向后偏移并寻址,将所寻址地址的连续4字节内容赋值为下标a加上0x273的和;

62、以0x139c加下标a的和再乘以4的积作为偏移量,以第二数据的起始地址为首地址,向后偏移并寻址,将所寻址地址的连续4字节内容赋值为下标a;

63、sb2:下标a自加1;

64、sb3:判断下标a的值是否不等于0x13a,如果是,执行步骤sb1,否则,执行步骤sb4;

65、sb4:下标a赋值为0x13a;

66、sb5:获取被加数:以下标b乘以4的积作为偏移量,以第二数据的起始地址为首地址,向后偏移并寻址,读取所寻址地址的连续4字节内容作为被加数;

67、获取加数:以下标b加1的和再乘以4的积作为偏移量,以第二数据的起始地址为首地址,向后偏移并寻址,读取所寻址地址的连续4字节内容作为加数;

68、第二数据的赋值:以下标a乘以4的积作为偏移量,以第二数据的起始地址为首地址,向后偏移并寻址,将所寻址地址的连续4字节内容赋值为被加数加上加数的和;

69、以0x1884加下标a的和再乘以4的积作为偏移量,以第二数据的起始地址为首地址,向后偏移并寻址,将所寻址地址的连续4字节内容赋值为下标b;

70、以0x9d0加下标b的和再乘以4的积作为偏移量,以第二数据的起始地址为首地址,向后偏移并寻址,将所寻址地址的连续4字节内容赋值为下标a;

71、以0x9d4加下标b的和再乘以4的积作为偏移量,以第二数据的起始地址为首地址,向后偏移并寻址,将所寻址地址的连续4字节内容赋值为下标a;

72、sb6:下标a自加1,下标b自加2;

73、sb7:判断下标a是否小于或等于0x272,如果是,执行步骤sb5,否则,执行步骤sb8;

74、sb8:以第二数据的起始地址为首地址,向后偏移0x9cc并寻址,将所寻址地址的连续4字节内容赋值为0x7fffffff;

75、以第二数据的起始地址为首地址,向后偏移0x1398字节并寻址,将所寻址地址的连续4字节内容赋值为0x0。

76、优选地,第三数据的获取包括以下步骤:

77、设置第三数据的字节长度为0x103b字节,从第三数据的起始地址为首地址的连续0xfc4个字节内容均赋值为0x20,第0xfc4个字节开始连续存放解密值,当前解密值为重复数据的个数时,将该重复数据的个数填入目标数据。

78、优选地,获取位加密数据中位数据的方法包括以下步骤:

79、sd1:赋初值:数据m、数据n均赋初值为0;

80、sd2:判断数据n的值是否等于0,如果是,执行步骤sd3,否则,执行步骤sd4;

81、sd3:数据n赋值为0x20;

82、以源索引作为偏移量,以源数据的起始地址为首地址,向后偏移并寻址,将所寻址地址的连续4字节内容赋值给数据m,源索引自加4;

83、sd4:数据n减位长度的差赋值给数据p,判断数据p的值是否小于0,如果是,执行步骤sd5,否则,执行步骤sd7;

84、sd5:位长度减数据n的差作为位偏移量,数据m所对应的32bit中,从右向左偏移该位偏移量,并在当前bit位向右获取连续n个bit位,所获取n个bit位的值作为数据o,其中,n为数据n的值;

85、以源索引作为偏移量,以源数据的起始地址为首地址,向后偏移并寻址,将所寻址地址的连续4字节内容赋值给数据m,源索引自加4;

86、sd6:数据p加0x20之和,与数据o进行或运算后的结果,作为右移位数,将数据m右移该右移位数的结果,赋值给数据o;

87、数据p加0x20之和赋值给数据n,执行步骤sd8;

88、sd7:数据p作为位偏移量,数据m所对应的32bit中,从右向左偏移该位偏移量,并在当前bit位向右获取连续n个bit位,所获取n个bit位的值作为数据o,其中,n为位长度;

89、数据p赋值给数据n;

90、sd8:输出数据o作为位数据的值。

91、本发明具有以下有益效果:

92、1、无需额外的硬件设备,恢复故障硬盘的成本低廉。

93、2、解决了现有技术中尚无一种获取西数marvell硬盘中rom文件的解密数据体集合的方法的技术问题。

本文地址:https://www.jishuxx.com/zhuanli/20240730/197095.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。