Actualité 3DS / 2DS / DS
Console Nintendo 3DS Hardware Blue Hack head

HACK 3DS - Le firmware 3DS 2.1.0-3E dumpé

par
Source: 3Dbrew

Le dernier firmware en date, le 2.1.0-3E, a été dumpé.

Un dump, c’est quoi ? Un dump permet donc de vider la mémoire d’une base de données. C’est comme créer une image de la mémoire afin que des développeurs puissent trouver un dysfonctionnement dans un programme. Dans le domaine du jeu vidéo, cela permet plusieurs choses comme créer des sauvegardes de jeux ou encore permettre à des développeurs en herbe de trouver une faille dans un système d’exploitation, tel qu’un firmware d’une console. 

Les informations concernant le hack de la Nintendo 3DS ne sont pas nombreuses. Mais le côté obscur de la console avance tout doucement. En effet, si vous avez suivi les dernières nouvelles avec nous, la team Legacy avait réussi le dump des premiers jeux 3DS. Aujourd’hui, c’est au tour d’UpSilon de nous dévoiler les entrailles du dernier firmware 2.1.0-3 E. Un grand pas donc du côté underground de la portable pour découvrir les failles de ce système qui résiste depuis maintenant près de quatre mois. Voici donc les structures du Metadata pour ceux qui peuvent les comprendre.

Structure des metadata

_Header
DEBUT     |               |LONGUEUR      |DESCRITPION
RSA 2048|RSA 4096 |                      |
0x000    | 0x000      |4                   |Signature type
0x004    | 0x004      |256 / 512      |Signature
0x104    | 0x204      |60                 |Padding modulo 64
0x140    | 0x240      |64                 |Issuer
0x180    | 0x280      |1                   |Version
0x181    | 0x281      |1                   |ca_crl_version
0x182    | 0x282      |1                   |signer_crl_version
0x183    | 0x283      |1                   |Padding modulo 64
0x184    | 0x284      |8                   |System Version
0x18C    | 0x28C      |8                   |Title ID
0x194    | 0x294      |4                   |Title type
0x198    | 0x298      |2                   |Group ID
0x19A    | 0x29A      |62                 |reserved
0x1D8    | 0x2D8      |4                   |Access rights
0x1DC    | 0x2DC      |2                   |Title version
0x1DE    | 0x2DE      |2                   |Number of Contents
0x1E0    | 0x2E0      |64                  |Content Records
0x220    | 0x320      |40                 |Padding modulo 64
0x248    | 0x348      |4                   |Boot content
0x252    | 0x352      |4                   |Banner content
0x256    | 0x356      |4                   |Banner size
0x260    | 0x360      |32                 |Hash

_Content Records
DEBUT     |LONGUEUR |DESCRIPTION
0x00     |4       |Content ID
0x04     |32       |SHA-256 Hash

_Certificates
DEBUT     |LONGUEUR |DESCRIPTION
0x000     |4               |Signature type
0x004     |*                |Signature
0x104     |64             |Issuer
0x124     |4               |Tag
0x128     |64             |Name
0x168     |                 |Key


Exemple de Code Source pour Programme.
===================================
typedef struct {
         u32 cid;         // Content ID
         u8  hash[0x20];  // SHA-256 hash
 } content_record;        // Taille: 0x24 bytes
 
 enum sig_type {
         RSA_2048_SHA256 = 0x00010004,
         RSA_4096_SHA256 = 0x00010003,
         RSA_2048_SHA1   = 0x00010001,
         RSA_4096_SHA1   = 0x00010000
 };
 
 typedef struct {
         u32 sig_type;
         u8 sig[*];     // * = Taille de la Signature
         u8 fill1[60];
         u8 issuer[64]; // Root-CA%08x-CP%08x
         u8 version;
         u8 ca_crl_version;
         u8 signer_crl_version;
         u8 fill2;
         u64 sys_version;
         u64 title_id;
         u32 title_type;
         u16 group_id;  // Editeur
         u8 reserved[62];
         u32 access_rights;
         u16 title_version;
         u16 num_contents;
         content_record contents[0x40];
         u8 padding[0x28];
         u32 boot_content;
         u32 banner_content;
         u32 banner_size;
         u8 hash[0x20]; /* Inconnu */
 } tmd;
 
 //Le tmd est alors suivi par une chaîne de certificats.
 typedef struct {
         u32 sig_type;
         u8 sig[*];        // * = Taille de la Signature
         u8 issuer[64];
         u32 tag;          // Identifie ce qui est signé.
         u8 name[64];      // Nom de chose étant signée.
         u8 key[...];
 } certificate;

Images-Screenshots-Captures-3DS-Console-Piratage-Hack-Protection-27012011

Commenter 11 commentaires

TAZEUS
J'espère qu'elle sera hackée le plus tard possible sinon les développeurs hésiterons à sortir des jeux sur 3DS pour éviter que leurs jeu ne se fasse pirater ... déjà que la 3DS n'as pas de jeux faut pas la tuer avent l'heure ! lol
(Là je sens que je vais me faire détester xD )
Signaler Citer
TAZEUS
Le fait de montrer que c'est possible de la hacker serait génial de leur part mais faut pas qu'ils le publient sinon sa va faire comme sur PSP ou tout le monde se moque de vous dès que vous sortez un UMD (haaaa il achète ses jeux mé kel pigeon haaaha !)
Signaler Citer
pyroset
Je suis totalement d'accord.
Montrer que c'est possible mais ne rien faire pour le moment. Il faudrait laisser la console au moins 2 voir même 3 ans sans hack pour voir apparaître des jeux à gros budget. Les éditeurs oseront prendre des risques comparait à une console dont le piratage est très présent.
Signaler Citer
DistantDude
TAZEUS Wrote:J'espère qu'elle sera hackée le plus tard possible sinon les développeurs hésiterons à sortir des jeux sur 3DS pour éviter que leurs jeu ne se fasse pirater ... déjà que la 3DS n'as pas de jeux faut pas la tuer avent l'heure ! lol
(Là je sens que je vais me faire détester xD )


Pas vraiment... La DS a été hackée vachement tôt, ça n'a jamais repoussé aucun développeur, la preuve, regardez donc le catalogue de la DS!

Ca apportera juste une vague d'anti-piratage implantés sur les jeux et dans les prochains firmware. XD

Du moins, c'est ce qui s'est produit avec la DS, donc...
Signaler Citer
TAZEUS
Moi personnellement ce qui m'intéresse dans le hack c'est les homebrew, émulateurs et autres. Par ce que moi j’achèterais jamais un malheureux fichier de 64 ou 128 Ko (jeux GB/GBC) 6 Euros moi j’appelle sa du vol. :Sourire
Signaler Citer
Naoki
Moi je trouve cela plutôt bien, tout simplement parce que la politique de Nintendo (et des développeurs sur cette plateforme) est bien différente de celle de Sony par exemple. Sauf preuve du contraire, la nintendo DS a été la console la plus facile a hacker, et tout utilisateur lambda sait un minimum utiliser un linker et télécharger des jeux illégalement (les parents le font pour leurs enfants).

Pourtant, son succès s'est avéré vrai ! Pour preuve du nombre de titres sortis sur la console, de tous genres, et qui continuent malgré tout de se vendre (merci aux collectionneurs et à ceux qui aiment posséder matériellement un jeu ^^).

Finalement, hack ou pas, cela ne fera que relancer les ventes de la 3DS bien plus tôt que prévu (ça faut pas l'oublier), et dans le pire des cas, n'aura qu'un petit impact sur les ventes des jeux (voyez avec la ds).
Signaler Citer
TURIOO
Bonsoir, il est que l' idée de hack la 3DS est cool , Mais moi je sais pas pourquoi , mais quand je joue un jeu DS sur mon linker , sa me donne pas du tout envie de le jouer tant que pour la PSP c'est différent !

**EDIT MODERATION** ! Sa éviterait d'acheter un linkers !
Signaler Citer