Si tu ajoute 0x00147FA0(taille du bloc data) + 0x0260(taille du bloc header), tu trouve 1344000, qui est sensée être la taile du fichié crypté, en tout cas la ps2 tient compte de cette taille pour le decryptage et l'execution. Dans mon image modifié j'ai rectifié les tailles des osdxxx de 8mo à 1,3 mo(enfin 1344000 octets) et ca marche bien !
Juste un octets de moins, ca ne boote plus...
Tu peut vérifier cette histoire de taille avec les autres fichiers cryptés du dvdplayer ou bbnav et autres, tu verras ca fonctionne a chaque fois.
Haaa ok je comprends mieux pourquoi tu me parlais du MEMENTO.BIN, je pensais vraiment qu’il était au début de la carte mémoire, et que donc il y a avait pas besoin de ce soucier de lui, mais effectivement ont lui gonflant ça taille, et bien 300 Bytes après il me sort du binaires, qui doit être une parti de l'OS.
Donc oui là sa ce complique alors si la MEMENTO.BIN est placer en 0x18F1800. :triste:
Par contre je bosse pour l'instant que sur la toute première version MemV01b, moins de fichier
Il faut donc que j'étudie ta théorie, car moi j’étais parti que sur la table du fichier, et non la fat, et encore moi l'entête du ELF empaqueter, c'est pour cela que sa foiré chez moi si je ne modifiais pas en plus la FAT.
Voila d'ailleurs mon pense bête pour la table :
Code:
### Description D'un Fichier Image Dans Une Table MC ###
777F 7F77 7F7F 777F 7F77 7F7F 0000 0000 <= ???
1784 0000 0000 8000 0010 160B 1C0A D707 <= Voir *A
775F 0000 0000 0000 0010 160B 1C0A D707 <= Voir *B
0000 0000 0000 0000 0000 0000 0000 0000 <= ???
0000 0000 0000 0000 0000 0000 0000 0000 <= ???
6F73 6431 3130 2E65 6C66 0000 0000 0000 <= Nom Du Fichier (osd110.elf)
### *A ###
Groupe 01 :
1784 = Attribution Du Fichier (rwx-f)
Groupe 03 Et 04 :
0000 8000 = 8388608 Bytes
Groupe 07 :
1C = Jour Du Fichier (28)
0A = Mois Du Fichier (10)
Groupe 08 :
D7 = Année Du Fichier(2007)
### *B ###
Groupe 01 :
775F = Emplacement Du Fichier Sur La Carte Mémoire (0X18A7400)
Groupe 07 :
1C = Jour Du Fichier (28)
0A = Mois Du Fichier (10)
Groupe 08 :
D7 = Année Du Fichier(2007)
Si tu veux compléter les ??? n’hésite pas, je n'ai pas encore fait l'heure ...
__________________
Dernière modification par hackchip ; 15/03/2008 à 10h09.
Groupe 01 :
775F = Emplacement Du Fichier Sur La Carte Mémoire (0X18A7400)
Si tu veux compléter les ??? n’hésite pas, je n'ai pas encore fait l'heure ...
Tu semble avoir le descripteur en entier sauf que je suis pas d'accord là dessus : 0x5F77 = cluster 24439 + 1er cluster allouable 137, ca nous fait 24576 *1056 (oui l'ecc en plus) = 0x18C0000 : départ du fichier osdxxx US
Merci pour les liens, oui tu a raison pour l'emplacement, j’avais pris celui que donner MCExtract101, mais après vérification en HEXA il ce gourait tout le temps, et je n’avais pas pensé à rectifier mon pense bête.
Voilà j'ai fait un petit outil en ligne de commande pour corriger les ECC de nos dump : ECC.rar
Il s'utilise comme suit : ECC fichier_a_corriger
Je pense que cela peut être utile pour nos tests, et attention il ne marche que sur un dump de 32mo contenant déjà l'ECC.
Sinon Hackchip, tu m'avait demander si je saurait sortir les fichiers du FILES.PAK provenant du dvdplayer, bbnav et autres...
Et bien oui, je peut les sortir, mais les plus important semplent cryptés... donc cela ne nous aidera pas beaucoup je pense.
Je pense à me demander si je ne pourrait pas faire un prog qui utilise SECRMAN et ses fonction SecrCardBootFile, censée décryptée les fichiers cryptés. Mais il doit falloir hooker cette fonction pour avoir le résultat du décryptage je pense.
Ok bon, j'ai corrigé et complété la table descripteur de fichier :
Code:
### Description D'un Fichier Image Dans Une Table MC ###
777F 7F77 7F7F 777F 7F77 7F7F 0000 0000 <= // A virer, c'est l'ECC de la page précédente
1784 0000 0000 8000 0010 160B 1C0A D707 <= Voir *A
775F 0000 0000 0000 0010 160B 1C0A D707 <= Voir *B
0000 0000 0000 0000 0000 0000 0000 0000 <= ???
0000 0000 0000 0000 0000 0000 0000 0000 <= ???
6F73 6431 3130 2E65 6C66 0000 0000 0000 <= Nom Du Fichier (osd110.elf)
### *A ###
Groupe 01 :
1784 = Attribution Du Fichier (rwx-f)
Masques utilisés (à ajouter en ET logique) :
0x0001 DF_READ : Lecture.
0x0002 DF_WRITE : Ecriture.
0x0004 DF_EXECUTE : Execution.
0x0008 DF_PROTECTED : Le dossier est protégé.
0x0010 DF_FILE : Fichier normal.
0x0020 DF_DIRECTORY : Dossier.
0x0040 : Utilisé en interne pour créer des dossiers.
0x0080 : Copié ?
0x0200 O_CREAT : Utilisé pour créer des fichiers.
0x0800 DF_POCKETSTN : Fichiers de sauvegarde PocketStation.
0x1000 DF_PSX : Fichier de sauvegarde PSX.
0x2000 DF_HIDDEN : Caché.
0x8000 DF_EXISTS : L'entrée est utilisée, ce ce flag est OFF, le fichier ou dossier a été éffacé.
Groupe 03 Et 04 :
0000 8000 = 8388608 Bytes
Groupe 05 :
10 = Seconde de création Du Fichier (16)
Groupe 06 :
16 = Minute de création Du Fichier (22)
0B = Heure de création Du Fichier (11)
Groupe 07 :
1C = Jour de création Du Fichier (28)
0A = Mois de création Du Fichier (10)
Groupe 08 :
07D7 = Année de création Du Fichier(2007)
### *B ###
Groupe 01 :
775F = Emplacement Du Fichier Sur La Carte Mémoire (0X18C0000)
Groupe 05 :
10 = Seconde de modification Du Fichier (16)
Groupe 06 :
16 = Minute de modification Du Fichier (22)
0B = Heure de modification Du Fichier (11)
Groupe 07 :
1C = Jour de modification Du Fichier (28)
0A = Mois de modification Du Fichier (10)
Groupe 08 :
07D7 = Année de modification Du Fichier(2007)
Juste une idée comme ça :
ça vaudrait pas le coup d'utiliser l'émulateur PCSX2 pour voir ce qui se passe ? Par exemple en modifiant le code source pour voir les transactions entre le bios et la carte mémoire ?
Je suis loin d'être aussi calé que vous et j'ai pas de playstation 2 sous la main (les enfants veulent pas vraiment me la prêter ) mais si je peux aider...
En tous cas, tous mes encouragements pour ce projet !
Cool merci de l'avoir fini.
Sinon pour ton patch ECC, il fait quoi exactement, supprime t'il comme tu le mentionne dans mon pense bête ?
Pour le FILES.PAK, tu vois encore des fichiers crypter, quelle entête ont t’ils, car si c’est du ELF, il ce peut que sa soit du Zlib, comme c’est le qu’à pour certains fichiers qui sont dans le BIOS de la PlayStation 2.
Essaye avec Ps2UnPacker => Index of /ps2-unpacker ...
Non hackchip, le patch ECC corrige juste les ECC existantes.
Cela nous permet de modifier un dump et d'en corriger l'ecc après modification.
J'ai juste mis "A virer" dans le pense-bête pour bien stipuler que dans un descripteur de fichier, l'offset 0x00 correspond bien au mode du fichier.
Pour les fichier du FILES.PAK, ce ne sont pas des ELF malheuresement, j'ai testé quand même avec ps2-unpacker mais bien sûr ca ne fonctionne pas...
Les fichier n'ont pas l'air d'avoir d'entête... en tout cas je ne vois rien de ce qui pourrait y ressembler.
Il va falloir utiliser le SECRMAN a mon avis...
Dernière modification par jimmikaelkael ; 16/03/2008 à 19h53.