Aller au contenu

Messages recommandés

Posté(e)

I'm here to bug you again. :'D This time I'm trying to create those .bpi, .rmi, .sgi and .hhi images. I've read it's DDS or JPEG with alpha format but it looks somehow encrypted.

 

And to be on topic: could you create a stand alone command line tool that converts image to those formats? Preferably working both with specifying input/output files and pipes:

converter.exe -i "<input file>" -o "<output file>"
converter.exe < "<input file>" > "<output file>"

This would be a great help!

  • Team
Posté(e)
Le 04/03/2019 à 15:04, anadius a dit :

I've read it's DDS or JPEG with alpha format but it looks somehow encrypted.

Yep, they are encrypted JPEG with alpha.

 

Creating a stand alone tool should not be difficult. 😉

Pipes will require more work since I'm not sure how to implement it in C#! 🤔

Here it is: imageconverter_v011.zip

 

Image Converter Tool. © TeameeVo 2019. Version 0.1.1
usage: imageconverter "<source>" ["<destination>"]
usage: imageconverter [-i:]"<source>" [[-o:]"<destination>"] [-f:[jpg|png]]


-i:<source>                Input file.
-o:<destination>           Output file.

-f:[jpg|png]               Define output image format.
                           Only valid if input image is of type .hhi, .sgi, .bpi or .rmi.
                           options [jpg|png(default)]

-h[elp]                    Show this help.

 

Small update:

- Default output format is now PNG

- "<destination>" is now optional if input file is of type .hhi, .sgi, .bpi, or .rmi.

  • Like 1
  • 7 mois après...
  • Team
Posté(e)
Le 08/12/2018 à 22:06, anadius a dit :

You might consider sharing that _pb2.py to .proto tool, for example on Github. I think many people could find it useful. But of course it's totally understandable if you decide not to. 😄

Finally here's a lightweight version:

PB2Decompiler.zip

PB2Decompiler_src.zip

Note: require .NET Framework 4.6.1 or better

 

It appears that the original google tool already has an option to decompile the _pb2.py files back to .proto files so you might want to check this option first.

Or you can use the source code to make your own. 😊

 

Someone is also working on a python port which should end better than my C# version. 😉

  • 1 mois après...
Posté(e)

j'ai un zip le generated.zip puis j'ai utiliser 

 uncompyle6 -o . \".protocolbuffers\Animation_pb2.pyc\"

Cela décompile en .py puis hop dans PB2

 

Pour installer Uncompyle6 ici

 

 

Par contre je ne trouve pas de proto lier au trayitem....

  • Team
Posté(e)

Il doit y avoir une petite différence avec l'outil que j'utilise, d'où l'erreur. 🤔

 

Il y a 1 heure, Thesam1798 a dit :

Par contre je ne trouve pas de proto lier au trayitem....

Essaie TrayMetadata dans Exchange.proto (Exchange_pb2.py) 😉

 

Pour lire les fichiers .trayitem :

TrayItemFile
{
  int type;
  int messageSize;
  byte[] messageData; // [messageSize]
}

Il ne reste plus qu'à convertir messageData en TrayMetadata.

Posté(e) (modifié)

Il doit avoir encore quelle que bug dans la génération du proto car je n'ais que TrayBlueprintMetadata et rien d'autre ...

Je vais regarder, surement un oubli de boucle.

 

il y a une heure, deevo a dit :

Il doit y avoir une petite différence avec l'outil que j'utilise, d'où l'erreur. 🤔

J'ai aussi une erreur lors de l'utilisation de Python Script Decompiler, c'est pourquoi je passe directement en CMD, dans tous les cas quand je suis sûr que tout est fonctionnel, je vais faire un auto decompiler directement depuis le zip.

Modifié par Thesam1798
  • Team
Posté(e)
il y a 29 minutes, Thesam1798 a dit :

Il doit avoir encore quelle que bug dans la génération du proto car je n'ais que TrayBlueprintMetadata et rien d'autre ...

Je vais regarder, surement un oubli de boucle.

Est-ce que le fichier ressemble à ceci :

// THIS FILE WAS RESTORED USING PYTHON SOURCE CODE AND MAY CONTAIN ERRORS.
// source: 

// Exchange.proto

syntax = "proto2";

package EA.Sims4.Network;

import "Consts.proto";
import "SimObjectAttributes.proto";
import "ResourceKey.proto";
import "Venue.proto";

message TrayBlueprintMetadata {
    0 unknown venue_type = 1;
}

Si oui, il s'agit d'un problème de formatage dans "serialized_pb".

 

il y a 30 minutes, Thesam1798 a dit :

J'ai aussi une erreur lors de l'utilisation de Python Script Decompiler,

Tu as essayé d'extraire les fichiers avant lancer Python Script Decompiler ?

Posté(e)
il y a 10 minutes, deevo a dit :

Est-ce que le fichier ressemble à ceci :


// THIS FILE WAS RESTORED USING PYTHON SOURCE CODE AND MAY CONTAIN ERRORS.
// source: 

// Exchange.proto

syntax = "proto2";

package EA.Sims4.Network;

import "Consts.proto";
import "SimObjectAttributes.proto";
import "ResourceKey.proto";
import "Venue.proto";

message TrayBlueprintMetadata {
    0 unknown venue_type = 1;
}

Si oui, il s'agit d'un problème de formatage dans "serialized_pb".

 

Je n'ais que cela dans le fichier

 

// THIS FILE WAS RESTORED USING PYTHON SOURCE CODE AND MAY CONTAIN ERRORS.
// source: 

// Exchange.proto

syntax = "proto2";

package EA.Sims4.Network;

import "Consts.proto";
import "SimObjectAttributes.proto";
import "ResourceKey.proto";
import "Venue.proto";

message TrayBlueprintMetadata {
    optional uint64 venue_type = 1;
    optional uint32 size_x = 2;
    optional uint32 size_z = 3;
    optional uint32 price_level = 4;
    optional uint32 price_value = 5;
    optional uint32 num_bedrooms = 6;
    optional uint32 num_bathrooms = 7;
    optional uint32 architecture_value = 8;
    // default = 0x00000001
    optional uint32 num_thumbnails = 9 [default = 1];
    // default = 0x00000000
    optional uint32 front_side = 10 [default = 0];
    optional uint32 venue_type_stringkey = 11;
    // default = 0x00000002
    optional uint32 ground_floor_index = 12 [default = 2];
    repeated uint32 optional_rule_satisfied_stringkeys = 13 [packed = true];
    repeated fixed64 lot_traits = 14 [packed = true];
    optional uint32 building_type = 15;
    optional uint64 lot_template_id = 16;
    optional .EA.Sims4.Network.UniversityHousingConfiguration university_housing_configuration = 17;
}

Il manque l'uuid ou metadata et encore beaucoup de chose qui sont présente dans le fichier python...

 

il y a 15 minutes, deevo a dit :

Tu as essayé d'extraire les fichiers avant lancer Python Script Decompiler ?

Oui mais impossible de le faire fonctionner, c'est pour cela que je me suis pencher vers uncompyle6

  • Team
Posté(e)
Il y a 2 heures, Thesam1798 a dit :

Il manque l'uuid ou metadata et encore beaucoup de chose qui sont présente dans le fichier python...

Voici un correctif à appliquer à tes modificationa dans ProtoDeserializer :

  var lines = File.ReadAllLines(filename, Encoding.UTF8);

  ...

  var text = ReadAttribValue(line).TrimEnd(' ', ')', '\'');

 

Code complet :

        public static byte[] DeserializeFrom(string filename)
        {
            if (filename == null)
                throw new ArgumentNullException("filename");

            string[] lines = File.ReadAllLines(filename, Encoding.UTF8);
            
            string line = lines.FirstOrDefault(k => k.Contains("serialized_pb"));
            if (line != null)
            {
                var text = ReadAttribValue(line).TrimEnd(' ', ')', '\'');
                var result = Deserialize(text);

                return result;
            }

            throw new NotSupportedException("Format not supported!");

            //return new byte[0];
        }

 

Si tu reçois un message d'erreur lorsque -d est spécifié :

dans le fichier Program.cs remplace ceci

switch (arr[0].Substring(1))
{
    case "h": case "help": Tasks.HelpTask.Execute(); return null;
    //case "d": case "decompile": index = 1; break;    // decompile (default)
}

par ceci

switch (arr[0].Substring(1))
{
    case "h": case "help": Tasks.HelpTask.Execute(); return null;
    // fix crash id '-d' is specified
    case "d": case "decompile": index = 1; break;    // decompile (default)
}

 

Il y a 2 heures, Thesam1798 a dit :

Oui mais impossible de le faire fonctionner, c'est pour cela que je me suis pencher vers uncompyle6

Et moi je n'arrive pas à faire fonctionner uncompyle6. 🙄

 

Si le correctif ne corrige pas le problème, envoie moi le fichier .py pour que puisse le comparer.

Posté(e) (modifié)

Cela n'a rien changer ...

Voila les deux fichier

 

Exchange_pb2.py

 

Exchange.proto

 

Dans le .py ligne : 1548

Nous avons : creator_uuid

Et il est bien présent dans le serialized_pb

Mais non trouver dans tout les ficher proto

 

 

il y a 16 minutes, deevo a dit :

Et moi je n'arrive pas à faire fonctionner uncompyle6. 🙄

 

Tu peut utiliser cela pour installer pip

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py --force-reinstall

Ensuit la commande d'installation pour uncompyle6 : 

Il est possible que cela change les variables d'environnement, tu peut faire une déconnexion de Windows pour les actualiser cela suffit.

pip install uncompyle6

 

Modifié par Thesam1798

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.




×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Conditions d’utilisation Politique de confidentialité