TMD: Unterschied zwischen den Versionen

Aus WiiDatabase Wiki
Zur Navigation springenZur Suche springen
1.618 Bytes hinzugefügt ,  16. April 2019
K
(Die Seite wurde neu angelegt: „In den '''Title Metadaten''' (Title Metadata) werden Informationen über einen Titel (Spiele, Kanäle, IOS, etc.) und alle install…“)
 
 
(15 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ötigtes [[IOS]]
| 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>
{{WiiTopicon}}
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]]

Navigationsmenü