Changes

20 bytes added ,  22:12, 3 March 2009
changed the word "disc" to "partition" for the H3 table discussion
Line 317: Line 317:  
* Aggregate 8 subgroups (64 clusters). Apply SHA-1 to the table of hashes of each subgroup (note that every cluster in the subgroup shares this, so you only compute the SHA-1 once per subgroup). Build a table, and store a copy of this table into every one of the 64 clusters.
 
* Aggregate 8 subgroups (64 clusters). Apply SHA-1 to the table of hashes of each subgroup (note that every cluster in the subgroup shares this, so you only compute the SHA-1 once per subgroup). Build a table, and store a copy of this table into every one of the 64 clusters.
   −
Finally, the global hash table ("H3"; which the partition header points to) contains the SHA-1 hash of the last table of each group in the disc. This table is not encrypted, but it is signed. To build it, take bytes 0x340-0x3DF from any sector in each group in the disc, apply SHA-1, and simply store all of the resulting hashes consecutively. All in all, each sector includes enough information to trace itself back to the master SHA-1 hash table. As a result, the entire disc is effectively signed. If anything is changed, the Wii will immediately crash (if the master hash table has been updated), or it will crash when it reads any sector in the modified group (if the group tables have been updated), any sector in the modified subgroup (if the subgroup tables have been updated), or any modified sector if no SHA-1s were updated.
+
Finally, the global hash table ("H3"; which the partition header points to) contains the SHA-1 hash of the last table of each group in the partition. This table is not encrypted, but it is signed. To build it, take bytes 0x340-0x3DF from any sector in each group in the partition, apply SHA-1, and simply store all of the resulting hashes consecutively. All in all, each sector includes enough information to trace itself back to the master SHA-1 hash table. As a result, the entire partition is effectively signed. If anything is changed, the Wii will immediately crash (if the master hash table has been updated), or it will crash when it reads any sector in the modified group (if the group tables have been updated), any sector in the modified subgroup (if the subgroup tables have been updated), or any modified sector if no SHA-1s were updated.
   −
The signature is stored in the [[Tmd_file_structure|TMD]]. The TMDs for the disc always have one content. The type of that content seems to be always 3, and the SHA1 hash is the SHA1 of the entire 0x18000 bytes of the hash table.
+
The signature is stored in the [[Tmd_file_structure|TMD]]. The TMDs for the partition always have one content. The type of that content seems to be always 3, and the SHA1 hash is the SHA1 of the entire 0x18000 bytes of the hash table.
 
The [[Tmd_file_structure|TMD]] is signed using Nintendo private key. That makes basically impossible to run modified discs. Trucha Signer uses the [[Signing_bug|signing bug]] to bypass the [[Tmd_file_structure|TMD]] signature checking, so the SHA1 hash of the master table can be updated, and modified discs can be booted.
 
The [[Tmd_file_structure|TMD]] is signed using Nintendo private key. That makes basically impossible to run modified discs. Trucha Signer uses the [[Signing_bug|signing bug]] to bypass the [[Tmd_file_structure|TMD]] signature checking, so the SHA1 hash of the master table can be updated, and modified discs can be booted.
  
12

edits