fuktop13 Posté(e) 21 septembre 2005 Share Posté(e) 21 septembre 2005 (modifié) BOnjour monsieurs dames ! TRouvé sur http://www.chez.com/mph/ La demarche est interressante , les eXplications et l avancement sont clair , ca a l'air d'etre du costaud pour trouver lol Recherche sur les updates au format EBOOT.PBP :----------------------------------------------- 3 facons possibles pour updater : - Par la memory stick ( PSP/GAME/UPDATE/EBOOT.PBP ) - Par un UMD ( SYSDIR/UPDATE/PARAM.SFO, EBOOT.BIN et DATA.BIN ) - Par connexion internet ( recherche du dernier EBOOT.PBP sur un site ) Comment trouver le MD5 du EBOOT.PBP : Un EBOOT.PBP d'update de la memory stick contient : - un PARAM.SFO (informations pour le vshell, notamment la version du firmware) - un ICON0.PNG (un icone affiché par le vshell) - un DATA.PSP (le programme d'update, signé) - un DATA.PSAR (les données de l'update) Le dossier SYSDIR/UPDATE de l'umd contient : - PARAM.SFO (Pareil que le PARAM.SFO de l'EBOOT.PBP de la memory stick) - EBOOT.BIN (Pareil que le DATA.PSP de l'EBOOT.PBP de la memory stick) - DATA.BIN (Pareil que le DATA.PSAR de l'EBOOT.PBP de la memory stick) Si on compare les fichiers entre eux : - PARAM.SFO de l'EBOOT.PBP est identique a PARAM.SFO de SYSDIR/UPDATE - DATA.PSP de l'EBOOT.PBP est identique a EBOOT.BIN de SYSDIR/UPDATE - DATA.PSAR de l'EBOOT.PBP est identique a DATA.BIN de SYSDIR/UPDATE MAIS contient 16 octets supplementaires a la fin En fait DATA.PSAR et DATA.BIN sont identiques et les 16 octets rajoutés le sont a la fin du fichier EBOOT.PBP mais comme le fichier EBOOT.PBP ne contient pas d'informations de taille mais des informations d'adresses de fichier, PBP-Unpacker et n'importe quel autre programme de gestion de PBP croit que ces 16 octets font parties de DATA.PSAR. -> 16 octets * 8 bits = 128 bits -> Taille d'un MD5 Pourquoi vouloir connaitre le MD5 : Si on veut downgrader en 1.50, il faut absolument mettre la version de UPDATER_VER dans le PARAM.SFO > 2.00 pour qu'il veuille bien demarrer mais si on modifie un octet dans l'EBOOT.PBP, le MD5 va changer et ne correspondra plus au MD5 contenu dans EBOOT.PBP. J'ai ensuite fait des tests sur l'EBOOT.PBP en modifiant des octets : - Si un octet est modifié a PARAM.SFO, l'archive est corrompue -> PARAM.SFO fait partie du calcul MD5 - Si un octet est modifié a ICON0.PNG, l'archive est corrompue -> ICON0.PNG fait partie du calcul MD5 - Si un octet est modifié a DATA.PSAR, l'archive est corrompue -> DATA.PSAR fait partie du calcul MD5 - Si un octet est modifié a DATA.PSP, le programme d'update ne se lance pas -> Erreur 0xFFFFFED2 (Le jeu ne se lance pas), est ce qu'il fait partie du calcul MD5 ? J'ai ensuite créé un programme PSP qui calcule le MD5 d'un fichier (Voir sur http://www.chez.com/mph), le calcul MD5 de la PSP est identique a celui d'un programme sur PC. Pour calculer le MD5 du fichier EBOOT.PBP, il faut d'abord retirer les 16 derniers octets du fichier (le MD5 deja ajouté par sony). Ensuite, on peut faire le calcul qui donne (pour le EBOOT.PBP de l'update 1.50 JAP) : AF D4 B8 F4 6C 89 BC F7 FC 32 EC 3D C7 1D C7 60 et celui qui est dans l'EBOOT.PBP (les 16 derniers octets) : 81 C8 EA 64 16 B2 3B 85 B7 A5 6B BF A9 32 35 58 Ce qui ne correspond pas ! J'ai ensuite extrait le DATA.PSP de l'EBOOT.PBP et je l'ai decodé avec un programme (voir http://www.chez.com/mph). J'ai recuperé le code asm avec asmdump pour comprendre comment le MD5 est calculé. J'ai trouvé du code qui fait appel au coprocesseur (Le coprocesseur qui decrypte ??) avec des calculs complexes, je pense que ce code correspond au code qui calcule le MD5 : 89774: 3c020010 lui v0,0x10 89778: c441fbbc lwc1 at,-1092(v0) <- acces au coprocesseur 8977c: 3c030024 lui v1,0x24 89780: c4609200 lwc1 zero,-28160(v1) 89784: 46016b42 mul.s $f13,$f13,$f1 <- calcul avec registres du coprocesseur ? 89788: 46016302 mul.s $f12,$f12,$f1 8978c: 00803021 addu a2,zero,32 89790: ac80000c sw zero,12(a0) 89794: 4600683c c.lt.s $f13,$f0 89798: e48c0004 swc1 t4,4(a0) 8979c: 45000003 bc1f c 897a0: e48d0018 swc1 t5,24(a0) 897a4: 24020001 addiu v0,zero,1 897a8: ac82001c sw v0,28(a0) 897ac: 3c020024 lui v0,0x24 897b0: c4419204 lwc1 at,-28156(v0) 897b4: c4c00004 lwc1 zero,4(a2) 897b8: c4629200 lwc1 v0,-28160(v1) 897bc: 3c020010 lui v0,0x10 897c0: 46010002 mul.s $f0,$f0,$f1 897c4: c441fbc0 lwc1 at,-1088(v0) 897c8: acc50020 sw a1,32(a2) 897cc: 460000cd trunc.w.s $f3,$f0 897d0: acc00010 sw zero,16(a2) 897d4: 46801820 cvt.s.w $f0,$f3 897d8: 46020002 mul.s $f0,$f0,$f2 897dc: 46010002 mul.s $f0,$f0,$f1 897e0: 4602003c c.lt.s $f0,$f2 897e4: 00000000 nop ... Ca continue apres et je pense que pour calculer le MD5, il faudrai créer un programme PSP en assembleur qui accede au coprocesseur pour lui faire calculer ce MD5. Je continue les tests ... Modifié 22 septembre 2005 par fuktop13 Lien vers le commentaire Partager sur d'autres sites More sharing options...
xzibit0007 Posté(e) 21 septembre 2005 Share Posté(e) 21 septembre 2005 Déjà poste dans la section software par MPH en personne. Double post. (bonjour à toi aussi) Lien vers le commentaire Partager sur d'autres sites More sharing options...
fuktop13 Posté(e) 21 septembre 2005 Auteur Share Posté(e) 21 septembre 2005 oops , ben alors les modos n"ont cas effacer :s Mais un double post comme ca a la limite c est toujours instructif Lien vers le commentaire Partager sur d'autres sites More sharing options...
xzibit0007 Posté(e) 22 septembre 2005 Share Posté(e) 22 septembre 2005 oops , ben alors les modos n"ont cas effacer :sMais un double post comme ca a la limite c est toujours instructif 510270[/snapback] c'est clair ça change des doubles daubes... lolll Lien vers le commentaire Partager sur d'autres sites More sharing options...
Naruto_95 Posté(e) 22 septembre 2005 Share Posté(e) 22 septembre 2005 Edit ton post et rajoute bjr .. c'est pas bien compliqué Lien vers le commentaire Partager sur d'autres sites More sharing options...
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant