Partage
  • Partager sur Facebook
  • Partager sur Twitter

"Dépacker" un fichier en Python ?

Anonyme
    21 mars 2011 à 8:28:15

    Bonjour tout le monde !

    Depuis un petit moment j'essaye de comprendre comment fonctionne l'un de mes jeux vidéos favori pour en extraire les ressources (sons, sprites, vidéos, etc).
    Pour les curieux, il s'agit de Street Wars (aka Mob Rule) ;).

    J'ai découvert que apparement les développeurs ne s'étaient pas cassés le dos et avait fait de gros fichiers DATA.FIL avec un header et tout les fichiers ressources les uns à la suite des autres.
    Une fois de plus pour les curieux, le header possède apparement une clé XOR 32bit mais ce n'est pas le sujet :o

    En plus clair, considérons un dossier :
    • street_wars
      • voix
        • fichier1.wav
        • fichier2.wav
        • fichier3.wav
      • fims
      • sprites

    Et dans le présent on se trouve avec un fichier DATA.FIL qui content toutes les données bout à bout (avec un header que je n'ai pas réussi à comprendre pour l'instant):
    <header><fichier1.wav><fichier2.wav><fichier3.wav>

    L'exemple que je prends n'est pas annodin car les ressources mêmes ne sont pas encodées dans des formats exotiques. Les sons et voix sont en WAV, les films en SMK, quelques images et l'intro en FLIC (FLI/FLC), etc

    Ainsi il serait relativement facile de créer un programme naif qui se contente de découper le fichier DATA.FIL en plusieurs petit fichier à chaques nouveau header rencontré (le WAV par exemple commence par les caractères RIFF en ASCII).

    Le seul problème c'est que je suis assez débutant en Python et que je ne vois pas trop comment m'y prendre, ouvrir le fichier n'est pas un soucis mais fouiller dedans pour créer d'autres petit fichiers, je ne vois pas trop comment faire pour le moment.
    Si quelqu'un sait me montrer le chemin à suivre, je serais ravi de l'écouter :)

    Je vous remercie tous par avance pour vos réponses !
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      21 mars 2011 à 9:56:15

      On pourrait connaître l'utilité de ce fichier DATA.FIL exactement?

      Quel sera l'intérêt d'un tel découpage?

      <header> --> html, non?

      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        21 mars 2011 à 10:50:17

        Citation : fred1599

        On pourrait connaître l'utilité de ce fichier DATA.FIL exactement?


        Comme je l'ai écris, il s'agit des fichiers ressources du jeu. C'est un gros fichier qui en contient plusieurs. J'ai si mal expliqué que ça ?

        Citation : fred1599

        Quel sera l'intérêt d'un tel découpage?


        Comme je l'ai dis aussi, le fichier DATA.FIL est un fichier qui en contient plusieurs. Tout comme un fichier ISO ou ZIP contient des fichiers.
        Quel est l'intérêt de dézipper un fichier ZIP ? ;)

        Citation : fred1599

        <header> --> html, non?


        Là je ne sais pas si c'est du chipotage, du trollage ou si j'ai encore mal expliqué.
        J'ai écris <header> pour schématiser basiquement comment était constitué le fichier.

        Pour vous donner une idée, une démo du jeu est téléchargeable à l'adresse suivante :
        http://tromzy.free.fr/Pix/SWars.rar
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          21 mars 2011 à 11:04:34

          Euh désolé en fait oui j'avais rien compris. :p

          Cette phrase m'a trompé

          Citation

          Et dans le présent on se trouve avec un fichier DATA.FIL qui content toutes les données bout à bout



          Et donc du coup j'ai cru que c'était un grand fichier texte. :-°

          Tu peux ouvrir ce fichier avec quel programme? Car j'ai téléchargé ton archive, mais je ne vois pas comment tu pourrais le lire avec des programmes existants.
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            21 mars 2011 à 14:16:06

            25 minutes pour dl 38 Mo... C'est vraiment de la merde free !

            Bon du coup je laisse tomber le dl ! (ou alors change de FAI ou d'hebergeur)

            Sinon, si tu connais la structure de ton fichier (archive) il te suffi de l'ouvrir en binaire et de récupérer les données en t'aidant du module struct.

            J'aurais bien aimé m'amuser avec ton fichier, mais quand je vois le temps qu'il met à venir... je rage !
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              21 mars 2011 à 23:34:29

              Citation : LeYan'tibus

              25 minutes pour dl 38 Mo... C'est vraiment de la merde free !



              Oh ! :o Il ne s'agit pas de mon espace de stockage. Cependant j'ai téléchargé le fichier en mettant le lien dans le post et c'était plié en 45sec...

              Enfin bon je viens de le téléverser sur Mediafire si jamais tu as toujours envie de t'amuser avec.

              fred1599, déjà, merci de me confirmer que je n'étais pas fou :p
              Ensuite, le fichier n'est pas fait pour être ouvert par un programme de compression ou de dépaquetage (?) courant. Il est juste chargé en mémoire par le jeu (ici la démo) qui lit le header du fichier et comprend donc à quel "endroit" du fichier de situe donc quel fichier (un peu dur à expliquer).

              Je vais me coucher, j'étudierais le conseil de LeYan'tibus demain x_x
              • Partager sur Facebook
              • Partager sur Twitter

              "Dépacker" un fichier en Python ?

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown