Pupxtractor


Ac_K
 Share

Messages recommandés

Bonjour à vous,

J'm'ennuyais un peu cet aprem alors j'ai coder un utilitaire pas très utile qui permet d'extraire les différentes partie d'un firmware PS3:

	 v0.3:		  -----		  - HMAC SHA-1 Added.		  - Little Improvement of UI.		  - Download of 3.21 / 3.30 Added.		  - Preview of Updated_Files.tar Added.	 		  v0.2:		  -----		  - Preview of XML file is improve.		  - Download of PUP to Sony servers.		  - Little changes...	 		  v0.1:		  -----		  - Extract one part of firmware.		  - Extract all parts of firmware.		  - Preview of Txt and XML file.

Donc pour le moment vous pouvez extraire une partie ou tous le firmware, y'a aussi une previsualisation des fichiers TXT et XML...

Je vais voir si je peux ajouter d'autre petite fonction dessus par la suite! Si vous avez des idées, problèmes ou autre, merci de m'en faire part ;)

++

Modifié par Ac_K
Lien vers le commentaire
Partager sur d'autres sites

  • Réponses 74
  • Created
  • Dernière réponse

Top Posters In This Topic

J'vais mettre des miroirs je pense, mais bon, RapidShare c'est plus ce que c'était!

Sinon, Que pensez vous d'un système de téléchargement de firmware ? Si ca peut être utilse, va falloir que je parte à la recherche de lien Sony ^^

Lien vers le commentaire
Partager sur d'autres sites

Salut Ac_K et merci pour ton appli ;)

Tu peux donner le format de base des archives PUP ? C'est du zip tout bête ou c'est plus compliqué ? j'ai pas windows, donc je me ferais bien un petit outil en ligne de commande pour *nix.

et sinon, y a-t-il des informations intéressantes dans les différents fichiers des archives ? Je suppose que les fichiers de mise à jour proprement dits sont indéchiffrables, mais peut être qu'au moins le changelog est lisible en clair.

Lien vers le commentaire
Partager sur d'autres sites

Après un rapide examen du binaire, le fichier est en plusieurs parties, dont les offsets et les tailles sont en en-tête. Par contre il n'y a aucun nom de fichier.

Je vais faire un code vite fait en C pour extraire tout ça.

Edit: ayet c'est fait, vous pouvez le télécharger en suivant ce lien. Le code est en GPL tout beau tout propre. Ca se compile avec la commande "make" (il faut avoir installé gcc et make bien sur), et vous pouvez extraire les fichiers avec la commande :

./pupextract fichier.pup

andjoille.

Modifié par ouasse
Lien vers le commentaire
Partager sur d'autres sites

La structure des PUP n'est franchement pas compliqué... Le header au début, puis la liste des fichiers et enfin les hash (HMAC SHA1) des fichiers!

Ouasse, si tu veux des infos plus technique y'a qu'a demander ^^ Jte ferai une petite doc sur le format...

Pour les noms, je l'ai fais au "petit bonheur la chance", avec le début de chaque fichier! Certains sont des txt, un XML pour le EULA, un SELF (surement l'installer) et puis des fichiers TAR contenant quand à eux certainement une partie des fichiers de mise à jour! Malheureusement ceux ci sont crypté par je ne sais quel algo de Sony!

Sinon pour le "non .Net" il y a une version ligne de commande qui existe depuis quelques temps! Mais elle ne supporte pas les nouveaux firmware!

Je rappel que si vous avez des idées pour cet "outil bidon" n'hésitez pas ;)

Lien vers le commentaire
Partager sur d'autres sites

Salut,

Désolé des questions qui vous paraitront peut-être un peu bêtes.

Le header donne pas mal d'infos sur la structure, si j'ai bien compris :

- Position 0x26, pour la taille de l'header.

- Le nombre de sections en 0x1F (?)

- Positions des sections données à partir de 1F + 0x20..., la taille suit ensuite et avant on trouve les Atributes en 0x36 + 0x20...

- Unknow en 0x16 mais je ne sais ce que c'est...

C'est ça?

Modifié par zouzzz
Lien vers le commentaire
Partager sur d'autres sites

zouzzz et Ac_K,

mon util en ligne de commande est ultra basique pour l'instant, ça m'a pris 1 heure pour analyser le fichier et faire le code d'extraction. Pour l'instant je récupère exactement 7 fichiers en prenant leurs offets et tailles à partir de 0x38 (les tailles sont en 64 bits apparemment) et en incrémentant de 32 octets (0x20) à chaque fois. Et j'ai pris les mêmes noms de fichier que ceux du screenshot d'Ac_K. Et je ne fais aucune vérif de sha-1, je vérifie juste que le header vaut bien 0x5343455546000000 en 64 bits (="SCEUF\0\0\0").

il y a certainement des choses à modifier, mais c'était juste histoire de faire un truc vite fait pour les non-windoziens.

cobaltduff, non tu ne peux pas changer le sha-1 d'un fichier. sha-1 est un algorithme qui génère une signature à partir des données contenues dans le fichier. si tu modifies le sha-1 associé à un fichier, ou le contenu du fichier, l'archive sera considérée comme invalide. Par contre tu peux générer un nouveau sha-1 à partir du nouveau fichier, mais il faudra encore que ce nouveau fichier puisse être lu et compris par le système de la ps3, ce qui n'est pas gagné, vu que les fichiers de l'update sont cryptés et donc non modifiables par d'autres personnes que Sony.

edit: ah tiens non, apparemment c'est plus compliqué d'après ce que dit Ac_X. il faut une clé HMAC qui est inaccessible a priori.

Modifié par ouasse
Lien vers le commentaire
Partager sur d'autres sites

Zouzzz

Position 0x26, pour la taille de l'header.

Plus exactement offset 0x20, sur un Entier de 8 bytes (Int64).

- Le nombre de sections en 0x1F (?)

Idem, Mais offset 0x18 ;)

- Positions des sections données à partir de 1F + 0x20..., la taille suit ensuite et avant on trouve les Atributes en 0x36 + 0x20...

Alors là j'ai pas trop compris ce que tu raconte ^^'! L'offset des sections est à 0x30, La structure d'une section à une taillle de 0x20:

0x00 -> Attribut.

0x08 -> Offset ou se trouve la section.

0x10 -> Taille de la section.

0x18 -> Padding de zero.

Les 3 valeurs étant sur 8 bytes comme dans le header. Ensuite, Il y a les hash mais comme nous n'avons pas la clé HMAC de la PS3 :/!

- Unknow en 0x16 mais je ne sais ce que c'est...

Offset 0x10, Ba moi non plus c'est pour ca que je l'ai nommé Unknown, mais ce que je sais c'est qu'il est différent dans chaque firmware!

Cobaltduff

Non, pour recréer le HMAC SHA1 il nous faut la clé HMAC de Sony (Qui doit surement être dans la PS3).

ouasse

T'inquiète pas ;) le format PUP je le connais de fond en comble, à part 1 inconnu! Pour les explications faut regarde plus haut ce que j'ai dit à Zouzzz :)

Modifié par Ac_K
Lien vers le commentaire
Partager sur d'autres sites

En ce qui concerne le hash HMAC SHA1... Si tu essaye de faire un SHA1 de la section tu vera que tu n'obtiendra pas le même hash... Et dans le SDK PS3 il y a un sample qui explique comment utilisé le SHA1 avec HMAC... le Seul Hash crypter par une clé qu'il y a dans le SDK d'ailleur ;)

Enfin voila si jamais vous avez des idées ou que vous savez ce qu'est l'inconnu moi je suis tout ouïe!

Lien vers le commentaire
Partager sur d'autres sites

Avec les FW plus ancien il y avai un utilitaire de (demonhades) avec le quel on pouvai reconstruire le pup, pourai tu faire la meme chose avec ton utilitaire?

je sai qu'on paire la clef de sony, mai je voudrai faire de preve come je fesai avan. merci

Modifié par Cobaltduff
Lien vers le commentaire
Partager sur d'autres sites

l'outil de "demonhades" ne modifie pas les hash... Par contre il me vient une idée mais je sais pas si quelqu'un voudra tester cette installation xD!

En gros, il y a les firmwares debug et les firmwares normaux, les 2 ont des hash HMAC valide... Si on prend un firmware normaux, et qu'on lui greffe des parti d'un firmware debug... Es ce que ce "firmware" modifier s'installera-t-il dans la PS3 Retail ? Faut essayé je pense que c'est pas trop compliqué après il faut que l'installation passe et si elle passe faut voir si elle ne brique pas la PS3... Des amateurs ? ^^

Lien vers le commentaire
Partager sur d'autres sites

l'outil de "demonhades" ne modifie pas les hash... Par contre il me vient une idée mais je sais pas si quelqu'un voudra tester cette installation xD!

En gros, il y a les firmwares debug et les firmwares normaux, les 2 ont des hash HMAC valide... Si on prend un firmware normaux, et qu'on lui greffe des parti d'un firmware debug... Es ce que ce "firmware" modifier s'installera-t-il dans la PS3 Retail ? Faut essayé je pense que c'est pas trop compliqué après il faut que l'installation passe et si elle passe faut voir si elle ne brique pas la PS3... Des amateurs ? ^^

Si tu reusi a que le melange de les 2 FW done le meme hash HMAC , le probleme e qu'il fau que la ps3 lese changer le core-os e les complemen du VSH du debug, si on instale le fw an mode recovery je panse que la ps3 saute quelque verificacion.

Lien vers le commentaire
Partager sur d'autres sites

Ah oui j'avais oublier qu'il y avait un Hash complet pour tous le fichier aussi :/... Bon ba ca sera pour une autre fois xD

mais si on oublie la hash, tu pourai faire que ton utilitaire recompose le pup y si posible avec les fichier que je veux ajouter ou changer? merci ;)

Modifié par Cobaltduff
Lien vers le commentaire
Partager sur d'autres sites

Ton utilitaire m'a donné envie de faire un truc un poil similaire mais pour 360, je tache de shaper ça entre midi et deux.

Edit : mince, j'ai qu'une petite heure pour grailler ce midi. Enfin bon, je fais ça aujourd'hui ou demain au plus tard... on a vécu 4 ans sans l'appli on vivra bien un jour ou deux de plus sans elle. :)

Modifié par zouzzz
Lien vers le commentaire
Partager sur d'autres sites

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
 Share

Annonces