Forums GAMERGEN

[TUTO] Décrypter un thème PlayStation 3 (manuellement)

Règles du forum
Pour les tutoriels liés au jailbreak de votre console. Merci de consulter l'univers undeground PS3.

Cette section reste soumise aux règles du forum, aucun contenu warez, illégal et dangereux n'est toléré.

[TUTO] Décrypter un thème PlayStation 3 (manuellement)

Message non lupar Corwin_1_1 » 18 Fév 2012, 06:40

Ce tutoriel est une exclusivité PS3GEN créer par moi qui regroupe un 1 mois de recherche (et de mal de crane) il y à un peu près un ans. Aucun tutoriel similaire n'est trouvable sur le net car aucune personne n'a décrypter autant de couche que moi sans utiliser de logiciel.

Maintenant place au remerciement : Je remercie Zembor() et Glowball pour m'avoir donner en une semaine toute leur avancé sur le décryptage du raf (même si se n'était que des offset) et Dragoon pour m'avoir aidé moralement à continué dans la scène underground même si il la fait sans se rendre compte.
Je dis cela car c'est peut être mon dernier "tuto" sur les thème et coldboot même si il reste une ou deux chose à modifier. Mais le principale est la et Sony c'est fait décrypter presque entièrement ces bijoux à 2 euros sur le PsStore. Place à vos éditeur hexadécimal et bonne lecture.


Bonjours,
aujourd'hui il me prend l'envie de commencer un tutoriel expliquant comment décrypter un thème dynamique ps3. Le tutoriel sera édité le plus souvent possible.

Tout d'abord je préviens que je n'est pas réussi à décrypter à 100% tout les fichiers.
Pour pouvoir comprendre se que j'explique il faut avoir un minimum de compétence dans la cryptographie donc l'utilisation de certain algorithme sera à prévoir. Et bien sur avoir déjà utilisé un éditeur hexadécimal.
Je ne reviendrais pas sur tout le vocabulaire. Se tuto est la pour simple connaissance. Je n'expliquerais pas comment je suis arrivé à se résultat.

Le but de se tuto sera d'avoir pour fichier de départ un thème dynamique ps3 (p3t) pour arrivé au finale avec toutes les sources et ressources utilisé pour sa compilation. Tout cela sans utilisé un logiciel du sdk de sony.

SOMMAIRE:
P3T
--XML
----Assemblage (-> XML)
--VAG
----Conversion (-> Wav)
--GIM
----Decompression et conversion (-> PNG)
--RAF
----Decompression

RAF
--JSX
----Decompression et conversion (->JS)
--SXML
----Assembage et conversion (->XML)
--SKEL / ANIM / EDGE
----Conversion (->DAE)
--GTF / JPG
----Conversion (->DDS et JPG)

Décompilation du p3t manuellement :


P3T Infos


Pour information un P3T se constitue en plusieurs partie :
-Le header
-Les informations du thème
-Les fichiers ressources

Il faut savoir aussi que les informations du thème avant de créer le P3T est dans un XML et les ressources dans plusieurs sorte de fichier.
Pour décrypter un fichier P3T rien de plus simple, il faut lire le header mais surtout le comprendre.

OFFSET :

00 -> 03 = Format P3T "P3TF"
04 -> 07 = Version P3T
08 -> 0b = Offset arbre (forme du XML)
0c -> 0f = Taille arbre
10 -> 13 = Offset des ID XML
14 -> 17 = Taille du bloc d'ID
18 -> 1b = Offset des balises XML
1c -> 1f = Taille du bloc de balises
20 -> 23 = Offset tableau d'int
24 -> 27 = Taille bloc tableau d'int
28 -> 2b = Offset tableau de float
2c -> 2f = Taille bloc tableau de float
30 -> 33 = Offset des ressources
34 -> 37 = Taille du bloc des ressources

Le xml se compose donc de l'offset 08 jusqu'à 1f
Les ressources eux peuvent êtres trois chose, les sons en vag, les icônes en gimp compréser avec l'algorithme zlib et le fichier RAF en zlib contenant l'animation.

Pour les différencier les vag commence par 56 41 47
les icones par 78 da
et le raf par 5f 52 41 46.

VAG infos

Le Vag à une compression 4 bit, il est utilisé par toute les consoles de sony. Il utilise un encodage ADPCM (Adaptive Differential Pulse Code Modulation).

Pour convertir le VAG je vous conseille de compiler cette source ou d'utiliser un logiciel de conversions VAG to WAV. Pour les source voici un programme fait par bITmASTER : http://psxsdk.googlecode.com/svn-history/r13/trunk/tools/vag2wav.c

Icônes


Pour récupérer les icônes du thème il faudra utiliser plusieurs procédé. Tout d'abors dans le p3t ils sont reconnaissable car ils commence par 78da. Pour information tout les fichier commencent par 78da est un fichier compressé en Zlib. Le Zlib utilise un algorithme appelé DEFLATE qui est une variation du LZ77. Cet algorithme fournit une bonne compression avec une utilisation minimale des ressources système. C'est aussi l'algorithme utilisé dans le format d'archive ZIP.

Pour décompresser le Zlib je vous propose ces sources : http://zlib.net/

Après avoir décompressé le fichier vous vous retrouvé avec un fichier GIM. Le gim est un fichier sous licence Sony donc il existe qu'un seul moyen c'est de le convertir manuellement mais d'autre personne avant moi l'ont déjà fait pour la psp (http://pspdum.my.land.to/psp/gim.html). Voici un logiciel gratuit qui convertit facilement les gim : http://www.geocities.jp/junk2ool/lib/GIM2PNG01.7z
Vous vous retrouverez maintenant avec un png.

RAF


Pour décompresser un raf du P3t rien de plus simple, chercher l'endroit ou commence 5f 52 41 46 et récupérer de la jusqu'à la fin du p3t. Pour le décrypter je vous l'expliquerais plus loin dans le tutoriel.

Info XML


Avant de commencer tout assemblage du xml il faut connaitre les balises :
Theme container:

Code: Select All Code
<?xml version="1.0" encoding="UTF-8"?>
   <theme>
</theme>


Information:

Code: Select All Code
<infotable>
   <info
      name=""
      icon=""
      url=""
      author=""
      authoricon=""
      genre=""
      version=""
      comment=""
      preview=""
   />
   <localizedinfo
      locale="fr
      name=""
   />
</infotable>


Définitions:
name = Nom du thème
icon = Icone du thème (64x64 jpg)
url = Votre url
author = Votre nom
authoricon = Votre icone (54x54 jpg)
genre = Genre
version = Version du thème
comment = Commentaire
preview = Image de prévisualisation (480x270 png)
locale = localisation (fr, en, jp, kr, etc)

Pour utiliser plusieurs langue pour votre nom, commentaire, ect faite comme ceci :

Code: Select All Code
<localizedinfo
   locale="en"
   name="nom anglais"
/>
<localizedinfo
   locale="jp"
   name="nom japonais"
/>
   <localizedinfo
   locale="fr"
   name="nom français"
/>


Langue disponible :
en, nl, de, fr, no , sv, zh_s, ko, pt, it, es, jp, da, fi, zh_t, ru

Background:

Code: Select All Code
<bgimagetable>
   <bgimage hd="hd_1.jpg" sd="sd_1.jpg"/>
</bgimagetable>


Définitions:
hd : HD background image (jpeg format) 1920x1080
sd : SD background image (jpeg format) 640x480


Pour utiliser plusieurs fond :
Code: Select All Code
<bgimagetable>
   <bgimage hd="hd_1.jpg" sd="sd_1.jpg"/>
   <bgimage hd="hd_2.jpg" sd="sd_2.jpg"/>
   <bgimage hd="hd_3.jpg" sd="sd_3.jpg"/>
</bgimagetable>


Pour utiliser un fond dynamique (raf) :
Code: Select All Code
<bgimagetable>
   <bgimage anim="anim.raf"/>
</bgimagetable>


Curseur (internet):

Code: Select All Code
<pointertable>
   <pointer id="pointer_arrow" src="" base_x="20" base_y="2" />
   <pointer id="pointer_finger" src="" base_x="16" base_y="10" />
   <pointer id="pointer_click" src="" base_x="16" base_y="10" />
   <pointer id="pointer_pen" src="" base_x="6" base_y="38" />
   <pointer id="pointer_hand" src="" base_x="23" base_y="17" />
   <pointer id="pointer_grab" src="" base_x="23" base_y="17" />
</pointertable>


Définitions:

pointer_arrow : Curseur de base
pointer_finger : Curseur affiché sur les boutons ou liens
pointer_click : Curseur affiché quand vous cliqué
pointer_pen : Curseur affiché sur les bar d'adresse
pointer_hand : Curseur affiché pour le déplacement de la page
pointer_grab : Curseur affiché quand vous déplacé une image
base_x="" Axe X utilisé pour le point d'origine
base_y="" Axe Y utilisé pour le point d'origine

Son :

Code: Select All Code
<setable>
   <se id="se_decide" left="decide_2.vag" right="decide_1.vag"/>
   <se id="se_cursor" left="cursor_2.vag" right="cursor_1.vag"/>
   <se id="se_optionmenu" left="optmenu_2.vag" right="optmenu_1.vag"/>
   <se id="se_cancel" left="cancel_2.vag" right="cancel_1.vag"/>
   <se id="se_system_ok" left="ok_2.vag" right="ok_1.vag"/>
</setable>


Définitions:
se_decide : Le bip quand un message s'ouvre pour poser une question
se_cursor : Le déplacement dans le xmb
se_optionmenu : Le son quand vous allez dans les option ou que vous pressez triangle
se_cancel : Le son quand vous quitter
se_system_ok : Le son quand vous accepter
left : Son venant de gauche
right : Son venant de droite

Icônes :

Code: Select All Code
<icontable>
   <icon id="icon_user" src="" />
   <icon id="icon_setting" src="" />
   <icon id="icon_photo" src="" />
   <icon id="icon_music" src="" />
   <icon id="icon_video" src="" />
   <icon id="icon_game" src="" />
   <icon id="icon_network" src="" />
   <icon id="icon_friend" src="" />
   <icon id="icon_tv" src="" />
   <icon id="icon_newuser" src="" />
   <icon id="icon_update" src="" />
   <icon id="icon_game_setting" src="" />
   <icon id="icon_bdvd_setting" src="" />
   <icon id="icon_music_setting" src="" />
   <icon id="icon_chat_setting" src="" />
   <icon id="icon_system_setting" src="" />
   <icon id="icon_theme_setting" src="" />
   <icon id="icon_datetime_setting" src="" />
   <icon id="icon_accessory" src="" />
   <icon id="icon_printer_setting" src="" />
   <icon id="icon_display_setting" src="" />
   <icon id="icon_sound_setting" src="" />
   <icon id="icon_security_setting" src="" />
   <icon id="icon_remoteplay_setting" src="" />
   <icon id="icon_network_setting" src="" />
   <icon id="icon_setting_item" src="" />
   <icon id="icon_photo_default" src="" />
   <icon id="icon_photo_album_default" src="" />
   <icon id="icon_music_default" src="" />
   <icon id="icon_music_album_default" src="" />
   <icon id="icon_video_default" src="" />
   <icon id="icon_video_album_default" src="" />
   <icon id="icon_mediaserver_search" src="" />
   <icon id="icon_ms" src="" />
   <icon id="icon_sd" src="" />
   <icon id="icon_cf" src="" />
   <icon id="icon_usb" src="" />
   <icon id="icon_pspms" src="" />
   <icon id="icon_usbcamera" src="" />
   <icon id="icon_usbaad" src="" />
   <icon id="icon_gamedata" src="" />
   <icon id="icon_savedata" src="" />
   <icon id="icon_vmc" src="" />
   <icon id="icon_newvmc" src="" />
   <icon id="icon_onlinemanual" src="" />
   <icon id="icon_remoteplay" src="" />
   <icon id="icon_browser" src="" />
   <icon id="icon_download" src="" />
   <icon id="icon_accountmanage" src="" />
   <icon id="icon_blocklist" src="" />
   <icon id="icon_addfriend" src="" />
   <icon id="icon_playermet" src="" />
   <icon id="icon_chat" src="" />
   <icon id="icon_chatroom" src="" />
   <icon id="icon_mbox" src="" />
   <icon id="icon_mbox_received" src="" />
   <icon id="icon_mbox_sent" src="" />
   <icon id="icon_mbox_create" src="" />
   <icon id="icon_default_h" src="" />
   <icon id="icon_default_v" src="" />
</icontable>


Définitions :
Tout les vrais nom de icônes. Les icônes sont en Png de taille 128x128 sauf pour ceux en rouge.

Icônes horizontal:
icon_user
icon_setting
icon_photo
icon_music
icon_video
icon_game
icon_network
icon_friend
icon_tv

Icônes utilisateur :
icon_newuser

Icônes paramètre :
icon_update
icon_game_setting
icon_bdvd_setting
icon_music_setting
icon_chat_setting
icon_system_setting
icon_theme_setting
icon_datetime_setting
icon_accessory
icon_printer_setting
icon_display_setting
icon_sound_setting
icon_security_setting
icon_remoteplay_setting
icon_network_setting

Icônes de sous menu des paramètres :
icon_setting_item

Icônes des photos, musiques, vidéos :
icon_photo_default - 170x128
icon_photo_album_default - 170x128
icon_music_default
icon_music_album_default
icon_video_default - 228x128
icon_video_album_default - 228x128
icon_mediaserver_search
icon_ms
icon_sd
icon_cf
icon_usb
icon_pspms
icon_usbcamera
icon_usbaad

Icônes jeu :
icon_gamedata
icon_savedata
icon_vmc
icon_newvmc
Network :
icon_onlinemanual
icon_remoteplay
icon_browser
icon_download

Icône PSN :
icon_accountmanage

Icônes amis :
icon_blocklist
icon_addfriend
icon_playermet
icon_chat
icon_chatroom
icon_mbox
icon_mbox_received
icon_mbox_sent
icon_mbox_create
icon_default_h
icon_default_v

Autre :

Code: Select All Code
<notification src="notification.png" />


Cette image est petite, 64x64, mais elle sera redimensionné automatiquement elle est utilisé pour afficher les messages en haut à droite de l'écran.

Code: Select All Code
<font selection="" />
<color selection="" />


Éléments utilisé par défaut de la ps3.

Police de caractère :
0 = Original
1 = Rounded
2 = Pop

Couleur des menus :
0 = Original (Change selon la date et l'heure)
1 = Blanc
2 = Jaune
3 = Vert clair
4 = Rose
5 = Vert foncé
6 = Violet pâle
7 = Cyan
8 = Bleu foncé
9 = Violet
10 = Orange
11 = Marron
12 = Rouge

Assemblage XML


Il me manque à comprendre le bloc d'arbre au début du p3t qui est les positons des balises et des id et pourquoi pas le nom des fichiers. mais pour confirmer il faut que j'arrive à le comprendre (si quelqu'un veut m'aider). Donc sans se paramètre il faut connaitre par coeur toute les balises et utiliser cette méthode :

Pour recréer le xml il faut regarder à plusieurs endroit et bien connaitre les balises xml, à l'offset des ID XML et à l'offset des balises XML. Les Id est le vrais nom des icônes, dans le p3t ils sont mis dans l'ordre de lecture. Les balises sont les balises utilisé dans le xml, elle sont mis dans l'ordre et la connaissance de toute les balises sert à savoir laquelle est emboité dans laquelle.

Il faut lire tout d'abord les balises et quand vous arrivé à un "id" vous savez que le nom se trouve dans l'offset ID. Pour scr je ne sait pas encore comment connaitre, peut être dans "l'arbre". Donc mettez le nom que vous voulez. Sa sera le nom de vos icônes.
Il est difficile d'expliquer donc je vais vous montrer un exemple :

En rouge ID XML et en vert les balises XML
00 00 00 38 69 63 6f 6e 5f 67 61 6d 65 5f 73 65 | ...8icon_game_se
74 74 69 6e 67 00 00 00 00 00 00 00 00 00 00 00 | tting...........
74 68 65 6d 65 00 69 63 6f 6e 74 61 62 6c 65 00 | theme.icontable.
69 63 6f 6e 00 73 72 63 00 69 64 00 73 69 7a 65 | icon.scr.id.size
00 62 67 69 6d 61 67 65 74 61 62 6c 65 00 62 67 | .bgimagetable.bg
69 6d 61 67 65 00 61 6e 69 6d 00 69 6e 66 6f 74 | image.anim.infot
61 62 6c 65 00 69 6e 66 6f 00 71 72 65 76 69 65 | able.info.previe
77 73 69 7a 65 00 6e 61 6d 65 00 42 48 44 20 44 | wsize.name.BHD D
79 6e 61 6d 69 71 75 65 20 74 68 65 6d 65 20 32 | ynamique theme 2
00 61 75 74 68 6f 72 69 63 6f 6e 73 69 7a 65 00 | .authoriconsize.
69 63 6f 6e 73 69 7a 65 00 61 75 74 68 6f 72 00 | iconsize.author.
43 6f 72 77 69 6e 37 35 00 61 75 74 68 6f 72 69 | Corwin75.authori
63 6f 6e 00 75 72 6c 00 00 76 65 72 73 69 6f 6e | con.url..version
00 32 2e 30 00 3d 74 69 6d 65 00 32 30 31 31 30 | .2.0.mtime.20110
38 30 34 30 31 33 31 30 34 00 67 65 6e 72 65 00 | 804013104.genre.
54 45 41 4d 00 70 72 65 76 69 65 77 00 00 00 00 | TEAM.preview


Assemblé :

<?xml version="1.0" ?>
<theme>
<icontable>
<icon id=
"icon_game_setting" src="icon_game_setting_1.png"/>
</icontable>
<bgimagetable>
<bgimage anim=
"anim_1.raf"/>
</bgimagetable>
<infotable>
<info author="Corwin75" authoricon="
authoricon_1.png" authoriconsize="16512" genre="TEAM" icon="icon_1.png" iconsize="16512" mtime="20110804013104" name="BHD Dynamique theme 2" preview="preview_1.png" previewsize="518528" url="" version="2.0"/>
</infotable>
</theme>


Le chiffre en bleu est la taille des images GIM en octects

Résumé décompilation p3t :

Si vous avez tout suivez et tout appliquer vous avez réussis à extraire manuellement tout les fichier du p3t, icônes, son, raf, xml. Tout sa sans utiliser un seul logiciel officiel de sony donc tout en légalité. Avec sa vous pouvez créer votre propre application pour extraire les p3t voir les raf car le principe est le même pour remplacer le logiciel "P3tExtractor" voir "p3tCompiler" de Sony si vous travailler dans l'autre sens.
Il nous manque plus cas décompiler le RAF. c'est le plus important car c'est se qui fait l'animation en fond.

Décompilation du raf manuellement :


Un fichier raf est un fichier contenant tout se qu'il faut pour animé votre thème. Il contient tout les objets 3D, les textures, un xml pour charger les ressources et du javascript pour les animer.

Si vous venez de l'extraire du p3t il faudra le décrypter avant de le décompresser. Pour cela rien de plus simple. Ouvrer le raf avec votre éditeur hexa et supprimer les 8 premiers octets pour obtenir un fichier commençant par 78 da.

Et oui vous avez pu le remarquer mais on retrouve bien un fichier compresser en Zlib. Donc utiliser la même méthode que précédemment pour décompresser le fichier (http://zlib.net/)

Infos raf :


Le raf ressemble très fortement à un P3T tout simplement car leurs compression est la même. Et oui si vous lisez le header du fichier vous retrouvé presque les mêmes indication :

00 -> 03 = Format RAF "RAF0"
04 -> 07 = Version RAF
08 -> 0b = Offset arbre (forme du XML)
0c -> 0f = Taille arbre
10 -> 13 = Offset des ID XML
14 -> 17 = Taille du bloc d'ID
18 -> 1b = Offset des balises XML
1c -> 1f = Taille du bloc de balises
20 -> 23 = Offset tableau d'int
24 -> 27 = Taille bloc tableau d'int
28 -> 2b = Offset tableau de float
2c -> 2f = Taille bloc tableau de float
30 -> 33 = Offset des ressources
34 -> 37 = Taille du bloc des ressources

Les dae (objets 3D) à la compilation sont découpé en plusieurs fichier, .edge, .edge.invbind, .skel et .anim (si il contient une animation par skeleton).
Pour les reconnaitre dans le raf ils ont un header (comme tout fichier ;) )

edge = 00 00 00 01
edge.invbind = aucun header
skel = 45 53 30 31
anim = 45 41 30 33

Les images utilisé pour texturer les objets peuvent avoir deux formats, jpg et dds.
Les jpg sont mis dans le raf sans compression
jpg = ff d8 ff e0 00 10 4a 46 49 46 00 01
Les dds sont compressé en gtf
dds = 02 01 01 ff

Le javascript est compressé en VSMX on peut le reconnaitre ainsi
jsx = 56 53 4d 58

Le XML lui doit être réassemblé.

infos GTF


Le GTF est un format de fichier pour stocker les données de texture utilisés dans libgcm, PSGL, et d'autres bibliothèques graphiques. Il stocke les textures en utilisant la structure de la mémoire utilisée directement par RSX (processeur graphique de la ps3). Le format accepte la multi-texture et les textures 3D.

Voici les offset du GTF

00 -> 03 = Version
04 -> 07 = Taille des textures
08 -> 0b = Nombre de texture dans le GTF
0c -> 0f = ID de la texture
10 -> 13 = Offset de la texture
14 -> 17 = Taille de la texture
18 -> 2f = Structure de la texture dans libgcm ?

La texture dans le gtf est exactement comme celle dans le DDS il n'y a que le header qui change. Alors pour recréer le DDS voici sa structure : http://msdn.microsoft.com/en-us/library/windows/desktop/bb943982%28v=vs.85%29.aspx
N'oublier pas que dans le header du dds les octets se lisent à l'envers par exemple 7c 00 00 00 doit être traduit par 00 00 00 7c.

Infos VSMX


Le VSMX est une compression utilisé par Sony. On ne c'est toujours pas le comprendre entièrement mais se qui est sur c'est qu'il est compressé de la même manière que le XML. Si on découvre la compression du xml ou du js on aura décrypter à 100% toute les couche des fichiers p3t et raf (thème et coldboot), Disons que si ont y arrive on pourra dire que Sony ne fait pas le poid contre les hackeur ;D

Donc commençons. Voici les offset du vsmx :

00 -> 03 = Format VSMX (VSMX)
04 -> 07 = Version du VSMX
08 -> 0b = Offset arbre (plan du js)
0c -> 0f = Taille de l'arbre
10 -> 13 = Offset Actor
14 -> 17 = Taille du bloc Actor
18 -> 1b = Nombre d'actor
1c -> 1f = Offset Commande
20 -> 23 = Nombre de Commande
24 -> 27 = Taille du bloc Commande
28 -> 2b = Offset Variable
2c -> 2f = Nombre de Variable
30 -> 33 = Taille du bloc Variable

Pour recréer le XML il faut utilisé la même méthode que pour le xml du p3t.


Maintenant je vais essaye de décrypter en direct les infos manquante pour le vsmx on verra plus tard pour les xml donc si quelqu'un veux m'aider il n'y à aucun soucis. Je vous est mâché tout le travaille jusqu'à présent vous trouvez pas ;)

Ce qui a été pour l'instant trouver pour le js:
Code: Select All Code
01 = ASSIGN                  = =
02 = ADD                     = +
03 = SUBTRACT                = -
04 = MULTIPLY                = *
05 = DIVIDE                  = /
08 = NEGATE                  = (-)
09 = NOT                     = !
0c = INCREMENT               = ++
0d = DECREMENT               = --
0e = TEST_EQUAL              = ==
0f = TEST_NOT_EQUAL          = !=
10 = TEST_CASE_EQUAL         =
12 = TEST_LESS_THAN          = <
13 = TEST_LESS_EQUAL_THAN    = <=
14 = TEST_MORE_THAN          = >
15 = TEST_MORE_EQUAL_THAN    = >=
20 = STACK_PUSH              = changement de case (pour switch)
22 = END_STATEMENT           = ;
23 = CONST_NULL              = null
24 = CONST_EMPTY_ARRAY       = tableaux vide
25 = CONST_BOOL              = valeur bool (true/false)
26 = CONST_INT               = valeur int (1)
27 = CONST_FLOAT             = valeur float (1.0)
28 = CONST_STRING            = string ("bonjour")
2a = FUNCTION                = function
2b = CONST_ARRAY             = array
2c = THIS_OBJECT             =
2d = UNNAMED_VARIABLE        = __varx
2e = NAME                    = variable
2f = PROPERTY                =
30 = METHOD                  =
31 = SET                     =
34 = ARRAY_INDEX             =
36 = ARRAY_INDEX_ASSIGN      =
38 = ARRAY_PUSH              =
39 = JUMP                    = allez à la ligne
3a = JUMP_IF_TRUE            = allez à la ligne si faux
3b = JUMP_IF_FALSE           = allez à la ligne si vrais
3c = CALL_FUNCTION           = appelle d'une fonction
3d = CALL_METHOD             =
3e = CALL_INBUILT            =
3f = RETURN                  = return
45 = END_SCRIPT              = fin du js
49 = MAKE_VECTOR             =


C'est un peut près bon pour le js. Donc pour le xml c'est un peu différent je me rend compte. Dans les id juste avant chaque nom il y a une valeur hexadécimal, cette valeur on la retrouve dans le plan du xml donc c'est l'id de l'id (héhé).
Je les retrouves 8 bytes avant quelque chose de spéciale (ff ff ff ff ff ff ff ff).
avec tout sa j'en déduit que sa correspond à la ligne des icônes dans la balise icontable dans le xml du p3t.

Trouver pour le xml p3t :
Code: Select All Code
Pour anonymous.p3t :

40 -> 43 = nb debut de balise (dans les id) (theme)
5c -> 5f = nb debut de balise (dans les id) (bgimagetable)
78 -> 7b = nb debut de balise (dans les id) (bgimage)
94 -> 97 = nb debut de balise (dans les id) (anim)
a4 -> a7 = nb debut de balise (dans les id) (infotable)
c0 -> c3 = nb debut de balise (dans les id) (info)
dc -> df = nb debut de balise (dans les id) (comment)
e0 -> e3 = genre (03 = info  01 = size 06 = icon)
e4 -> e7 = les infos, taille ou nom d'icone
e8 -> eb = pour 03 = nombre de caractère
      pour 01 = rien
      pour 06 = ?



<infotable>

   Dans le cas ou ff ff ff ff  ff ff ff ff  ff ff ff ff  ff ff ff ff commence à 0c

   x0 -> x3 = le genre : 03 = info  01 = size 06 = icon

   x4 -> x7 = les infos, taille ou nom d'icone

   (e4 = comment
   f4 = previewsize
   104 = name
   114 = author
   124 = url
   134 = authoriconsize
   144 = authoricon
   154 = iconsizer
   164 = version
   174 = valeur mtime
   184 = genre
   194 = preview
   204 = icon)

   x8 -> xb = pour 03 = nombre de caractère
            pour 01 = rien
            pour 06 = ?

   xc -> xf = nombre debut balise (dans les id)

</infotable>
<bgimagetable>

Pour ff ff ff ff  ff ff ff ff  ff ff ff ff commence à 08

1c -> 1f = debut du nom de la balise (bgimagetable) fini a la fin du mot.

38 -> 3f = debut du nom de la balise (bgimage) fini a la fin du mot.

</bgimagetable>



En finition
Dernière édition par JBTest le 22 Fév 2012, 22:43, édité 12 fois.
Avatar de l’utilisateur Corwin_1_1

Re: [TUTO] Décrypter un thème PlayStation 3 (manuellement)

Message non lupar Corwin_1_1 » 20 Fév 2012, 06:26

Je cherche quelqu'un Pour m'aider à décrypter certain endroit des certain fichier. Si quelqu'un est volontaire qu'il me fasse savoir.

ps : Je me rend compte que j'ai pas chaumé :o
Avatar de l’utilisateur Corwin_1_1

Re: [TUTO] Décrypter un thème PlayStation 3 (manuellement)

Message non lupar [HG] TJ619 » 22 Sep 2012, 20:54

J'ai lu 2 lignes que j'etais déjà perdu :D

Super tuto je penses pour ceux qui s'y connaisse

Et super boulot
AFK
[HG] TJ619 Ancien
Ancien
Messages: 7649
Inscription: 02 Sep 2011, 22:59
Pays: France
Sexe: Homme


 

Retourner vers Tutoriels