Data recovery and disk repair questions and discussions related to old-fashioned SATA, SAS, SCSI, IDE, MFM hard drives - any type of storage device that has moving parts
Post a reply

WD ROM from SA - checksum

July 1st, 2015, 6:11

I'm trying to rebuild rom from sa modules.

I found this tutorial: http://www.hddoracle.com/viewtopic.php?f=59&t=225

Unfortunately, I do not know how to count checksum for each modules.

Checksum is located at 0x0C - 0x0F in each modules.
So how to calulate that value? Should I write 00 00 00 00 and the calculate or calculate on original sa module?

Re: WD ROM from SA - checksum

July 2nd, 2015, 9:23

Just checked, it is a simle 32bit checksum.
U need to set it up so that the sum of all dwords in the module is 0.

Re: WD ROM from SA - checksum

July 2nd, 2015, 11:31

Not so simple for me :(

For example, I take mod 107

Code:
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11

00000000  52 4F 59 4C 04 00 1E 00 07 01 01 00 03 C8 F8 C5 30 30  ROYL.........ÈøÅ00
00000012  30 32 30 30 30 30 00 00 00 00 00 00 06 12 01 0A 00 3E  020000
00000024  00 00 19 00 00 B2 FF 02 00 00 00 00 00 12 01 0B 00 D1
00000036  00 00 19 00 00 E1 FE 02 00 00 00 00 00 12 01 30 00 00
00000048  04 00 19 00 00 E1 FA 02 00 00 00 00 00 12 01 47 00 00
0000005A  04 00 19 00 00 20 F3 02 00 00 00 00 00 12 01 0D 00 84
0000006C  00 00 19 00 00 9C F2 02 00 00 00 00 00 12 01 4F 00 E0
0000007E  00 00 19 00 00 20 F7 02 00 00 00 00 00 46 06 FF 0F 3F
00000090  00 26 8C 02 00 00 00 00 00 26 8C 02 00 E2 6F 03 00 26
000000A2  8C 02 00 C4 DF 06 00 26 8C 02 00 A6 4F 0A 00 26 8C 02
000000B4  00 88 BF 0D 00 26 8C 02 00 6A 2F 11 00 00 00 00 00 00


First, I have to change ID (0x06 and 0x07) : 07 01 --> 0B 00

Code:
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11

00000000  52 4F 59 4C 04 00 1E 00 0B 00 01 00 03 C8 F8 C5 30 30  ROYL.........ÈøÅ00



What next?

Should I calculate 32bit checksum for mod 102 with changed ID?

Re: WD ROM from SA - checksum

July 2nd, 2015, 14:58

The checksum is 32-bit little endian.

Make the required changes to the module, calculate the 32-bit sum, and then subtract this sum from the checksum dword.

Re: WD ROM from SA - checksum

July 3rd, 2015, 4:08

fzabkar wrote:Make the required changes to the module, calculate the 32-bit sum, and then subtract this sum from the checksum dword.

So, I calculated checksum (by chksum2) for my changed module: 0xFFFFFF08
Present checksum in module is: 53 51 C2 64.
If I understood correctly, I now subtract new checksum from the current, that is 0x64C25153 - 0xFFFFFF08 = 0x64C2524B (dword)
New checksum is 4B 52 C2 64. I checked chechsum for whole module and is 0x00000000. Success :)
Thank you for help!

Re: WD ROM from SA - checksum

July 3rd, 2015, 4:43

I converted module 103 into 047 and the sum of the these modules is different

047 from 103 module
52 4F 59 4C 01 00 1E 00 47 00 02 00 FD 20 1D 78


org 047 module
52 4F 59 4C 01 00 1E 00 47 00 02 00 03 26 26 7F


Is it correct?

Re: WD ROM from SA - checksum

July 3rd, 2015, 5:05

do the module contents look identical?

Re: WD ROM from SA - checksum

July 3rd, 2015, 5:13

pepe wrote:do the module contents look identical?


Yes

047 from 103 module
Code:
52 4F 59 4C 01 00 1E 00 47 00 02 00 FD 20 1D 78 44 58 2E 30 30 33 32 20 07 07 07 00 30 00 80 01 A0 01 00 00 00 00 00 00 00 00 00 00 00 00 37 4B A0 45 20 80 71 12 0F 0E 0F 0F AE B0 8C 05 65 01 40 4F C0 02 04 0C 19 56 14 E0 EE FF FD 10 78 C0 16 2D 3E 20 00 00 00 20 00 00 80 45 20 80 71 10 0F 11 0E 11 AE B0 8C 05 65 01 40 6A C0 04 05 0E 19 56 16 DF EA FD FC 00 78 C0 16 2D 3E 20 00 00 00 20 00 00 C0 45 20 80 71 10 0F 0F 10 0F AE B0 8C 05 65 01 40 5B C0 02 05 0C 1E 56 11 DF ED FE FD 00 78 C0 16 2D 3E 3E 00 00 00 20 00 00 E0 45 24 80 71 10 0F 0E 0E 0E AE B0 8C 05 65 01 40 60 C0 02 04 0A 1E 56 13 DB EB FE FD 00 00 C0 16 2D 3E 20 00 00 00 20 00 00 E0 45 20 80 71 11 0F 0F 10 10 AE B0 8C 05 65 01 40 5F C0 01 03 09 19 56 19 DE EA FE FD 00 00 C0 16 2D 3E 3A 00 00 00 20 00 00 A0 45 20 80 71 12 0F 0F 0F 10 AE B0 8C 05 65 01 40 67 C0 03 04 0C 19 56 12 DC EA FE FC 00 00 C0 16 2D 3E 20 00 00 00 20 00 00 C0 45 20 80 71 00 0F 05 0F 05 AE B0 8C 05 65 01 40 80 C0 02 03 0B 14 56 FF DE F0 FF FB 00 00 C0 16 2D 3E 20 00 00 00 20 00 00 C0 45 20 80 71 00 0F 05 0F 05 AE B0 8C 05 65 01 40 80 C0 02 03 0B 14 56 FF DE F0 FF FB 00 00 C0 16 2D 3E 20 00 00 00 20 00 00 0F 72 0A 04 0C 60 08 04 0C 63 0A 05 0F 62 0A 06 0C 72 08 06 13 72 0B 03 00 A0 0A 05 00 A0 0A 05 20 0A 6D 0A 1D 0A 74 0A 25 0A 8E 0A 0A 0A 0A 0A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 81 01 11 00 12 00 11 00 12 00 11 00 12 00 00 00 00 00 01 00 1E 01 39 39 39 39 39 39 39 39 42 3D 42 00 3D 42 3F 3A 3F 00 3A 3F 42 3E 42 00 3E 42 40 3B 40 00 3B 40 43 40 43 00 40 43 44 40 44 00 40 44 3B 34 3B 00 34 3B 3B 34 3B 00 34 3B 00 00 00 00 00 00 12 FD FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 88 0B 88 0A 88 0A 88 0A 88 0A 88 0A 88 09 88 09 5B 01 03 00 5D 01 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 47 53 4C 54 4C 50 50 58 60 60 7E 7D 7E 7F 7E 78 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00


org 047 module
52 4F 59 4C 01 00 1E 00 47 00 02 00 03 26 26 7F 44 58 2E 30 30 33 32 20 07 07 07 00 30 00 80 01 A0 01 00 00 00 00 00 00 00 00 00 00 00 00 37 4B A0 45 20 80 71 12 0F 0E 0F 0F AE B0 8C 05 65 01 40 4F C0 02 04 0C 19 56 14 E0 EE FF FD 10 78 C0 16 2D 3E 20 00 00 00 20 00 00 80 45 20 80 71 10 0F 11 0E 11 AE B0 8C 05 65 01 40 6A C0 04 05 0E 19 56 16 DF EA FD FC 00 78 C0 16 2D 3E 20 00 00 00 20 00 00 C0 45 20 80 71 10 0F 0F 10 0F AE B0 8C 05 65 01 40 5B C0 02 05 0C 1E 56 11 DF ED FE FD 00 78 C0 16 2D 3E 3E 00 00 00 20 00 00 E0 45 24 80 71 10 0F 0E 0E 0E AE B0 8C 05 65 01 40 60 C0 02 04 0A 1E 56 13 DB EB FE FD 00 00 C0 16 2D 3E 20 00 00 00 20 00 00 E0 45 20 80 71 11 0F 0F 10 10 AE B0 8C 05 65 01 40 5F C0 01 03 09 19 56 19 DE EA FE FD 00 00 C0 16 2D 3E 3A 00 00 00 20 00 00 A0 45 20 80 71 12 0F 0F 0F 10 AE B0 8C 05 65 01 40 67 C0 03 04 0C 19 56 12 DC EA FE FC 00 00 C0 16 2D 3E 20 00 00 00 20 00 00 C0 45 20 80 71 00 0F 05 0F 05 AE B0 8C 05 65 01 40 80 C0 02 03 0B 14 56 FF DE F0 FF FB 00 00 C0 16 2D 3E 20 00 00 00 20 00 00 C0 45 20 80 71 00 0F 05 0F 05 AE B0 8C 05 65 01 40 80 C0 02 03 0B 14 56 FF DE F0 FF FB 00 00 C0 16 2D 3E 20 00 00 00 20 00 00 0F 72 0A 04 0C 60 08 04 0C 63 0A 05 0F 62 0A 06 0C 72 08 06 13 72 0B 03 00 A0 0A 05 00 A0 0A 05 20 0A 6D 0A 1D 0A 74 0A 25 0A 8E 0A 0A 0A 0A 0A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 81 01 11 00 12 00 11 00 12 00 11 00 12 00 00 00 00 00 01 00 1E 01 39 39 39 39 39 39 39 39 42 3B 42 00 3B 42 3E 39 3E 00 39 3E 42 3C 42 00 3C 42 40 3A 40 00 3A 40 42 3E 42 00 3E 42 43 3F 43 00 3F 43 3B 34 3B 00 34 3B 3B 34 3B 00 34 3B 00 00 00 00 00 00 12 FD FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 88 0B 88 0A 88 0A 88 0A 88 0A 88 0A 88 09 88 09 5B 01 03 00 5D 01 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 47 53 4C 54 4C 50 50 58 60 60 7E 7D 7E 7F 7E 78 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Re: WD ROM from SA - checksum

July 3rd, 2015, 8:37

pepe wrote:do the module contents look identical?


Yes, IMHO modules look indentical.
I attached oryginal 047 module, 103 module and my work, that is 047 rebuild from 103.
Attachments
a.zip
(1.42 KiB) Downloaded 810 times

Re: WD ROM from SA - checksum

July 3rd, 2015, 8:57

BTW, why do u want to rebuild original 47 if u have it?

Re: WD ROM from SA - checksum

July 3rd, 2015, 9:19

47 and 103 is not identical, there are differences from offset 1E3, so the resulting module's checksum has to differ from your orig 47

Re: WD ROM from SA - checksum

July 3rd, 2015, 9:25

pepe wrote:BTW, why do u want to rebuild original 47 if u have it?


I learn on the basis of pre-made example.

Re: WD ROM from SA - checksum

July 16th, 2015, 7:41

I have one more question.

There is writen that "MOD 104 matches the MOD 0D template in MOD 109. However, the actual content of MOD 0D in ROM is significantly different. "
in the tutorial: http://www.hddoracle.com/viewtopic.php?f=59&t=761

Is spite of these differences rebuilt ROM will be good?

Re: WD ROM from SA - checksum

July 16th, 2015, 19:36

Module 0D contains informational stuff like the firmware version, world wide name (WWN) and sometimes the model number and serial number. I believe that you can change any of these parameters without affecting the access to your data.
Post a reply