7.838
Bearbeitungen
ICON (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
ICON (Diskussion | Beiträge) |
||
(14 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
In den '''Title-Metadaten''' (Title Metadata) werden Informationen über einen Titel (Spiele, [[:Kategorie:Wii-Kanal|Kanäle]], [[IOS]], etc.) und alle installierten Inhalte gespeichert. Sie dient vereinfacht gesagt auch als eine Art Inhaltsverzeichnis, denn sie zeigt alle zugehörigen Inhalte inklusive ihrer Position, Größe und SHA1-Hash an. | In den '''Title-Metadaten''' (Title Metadata) werden Informationen über einen Titel (Spiele, [[:Kategorie:Wii-Kanal|Kanäle]], [[IOS]], Systemsoftware, etc.) und alle installierten Inhalte gespeichert. Sie dient vereinfacht gesagt auch als eine Art Inhaltsverzeichnis, denn sie zeigt alle zugehörigen Inhalte inklusive ihrer Position, Größe und SHA1-Hash an. Sie können vom [[Nintendo-Update-Server]] heruntergeladen werden (bspw. http://nus.cdn.shop.wii.com/ccs/download/000000010000003A/tmd für die TMD des [[IOS58]]). | ||
== Struktur == | == Struktur == | ||
Zeile 15: | Zeile 15: | ||
| 0x004 | | 0x004 | ||
| 256 | | 256 | ||
| Signatur | | [[#Signatur|Signatur]] | ||
|- | |- | ||
| 0x104 | | 0x104 | ||
Zeile 43: | Zeile 43: | ||
| 0x184 | | 0x184 | ||
| 8 | | 8 | ||
| | | Benötigter Titel (bspw. benötigtes [[IOS]]) | ||
|- | |- | ||
| 0x18C | | 0x18C | ||
Zeile 85: | Zeile 85: | ||
| [[#Inhalt|Inhalte]] | | [[#Inhalt|Inhalte]] | ||
|} | |} | ||
=== Signatur === | |||
{{Hauptartikel|Zertifikatskette}} | |||
Die Signatur beinhaltet den SHA1-Hash der TMD (vom Aussteller bis zum Ende der Inhalte), welcher mit dem Private-Key verschlüsselt ist. Um diesen zu entschlüsseln, muss der Public-Key aus dem CP-Zertifikat (welches üblicherweise das erste angehängte Zertifikat ist) [[w:RSA-Kryptosystem#Erzeugung_des_öffentlichen_und_privaten_Schlüssels|gebildet]] und die Signatur entschlüsselt werden (nur die Daten, ohne Signatur-Typ und Padding). Stimmt der gebildete SHA1-Hash der TMD mit dem entschlüsselten Hash aus der Signatur überein, ist die TMD valide und von Nintendo signiert. | |||
Wenn der SHA1-Hash nicht übereinstimmt und der gebildete SHA1-Hash der TMD mit <code>00</code> beginnt, ist diese [[Fakesigning|fakesigned]]. | |||
Das CP-Zertifikat ist von dem CA-Zertifikat signiert, welches wiederum mit dem Wii Root-Zertifikat signiert ist. | |||
=== Inhalt === | === Inhalt === | ||
Zeile 147: | Zeile 155: | ||
== Anwendungsbeispiel == | == Anwendungsbeispiel == | ||
''Siehe auch: [https://github.com/WiiDatabase/PyNUSD/blob/master/WADGEN.py WADGEN]'' | |||
Dieses Code-Beispiel in Python 3 parst eine TMD. | Dieses Code-Beispiel in Python 3 parst eine TMD. | ||
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> | ||
Zeile 182: | Zeile 192: | ||
return info # List with every content | return info # List with every content | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Gibt für das [[IOS58]] aus: | Gibt für das [[IOS58]] auf der Konsole aus: | ||
<pre> | <pre> | ||
Title ID: 000000010000003A | Title ID: 000000010000003A | ||
Zeile 190: | Zeile 200: | ||
... | ... | ||
</pre> | </pre> | ||
{{ | Gibt die <code>info</code>-Liste zurück: | ||
<pre>[24, 0, 1, 64, b'bcd51d83d9479e44c622c92ebf49bb2c6529d695'] | |||
...</pre> | |||
wobei 24 im Hexadezimalsystem = 18, durch <code>"%08X" % 24</code> werden Nullen vorangestellt (das X bedeutet Hexadezimal, vgl. [https://stackoverflow.com/a/15108984/3146627 StackOverflow]). | |||
{{Top Icon Wii}} | |||
{{Top Icon DSi}} | |||
[[Kategorie:Nintendo DSi]] | |||
[[Kategorie:Nintendo Wii]] | |||
[[Kategorie:vWii]] |
Bearbeitungen