Accueil > Actualités > HACK 3DS - Le firmware 3DS 2.1.0-3E dumpé Devenir membre - Se connecter

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

Écrite le 26 juin 2011 à 11h02 par kabuto_rider | 18508 lectures | Publiée par White Cloud - Corrigée par Ludicario | Source : 3Dbrew
HACK 3DS - Le firmware 3DS 2.1.0-3E dumpé 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

Actualité DS

Exploitez votre DS

Aide et information

Sondage

De quelle couleur est votre 3DS ?

Voir les sondages

Top recherche