Deobfuscation d'un .class
Résolu
Wolffe99
Messages postés
27
Date d'inscription
Statut
Membre
Dernière intervention
-
Wolffe99 Messages postés 27 Date d'inscription Statut Membre Dernière intervention -
Wolffe99 Messages postés 27 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je voudrai savoir si il y aurait un moyen de déobfusquer un fichier .class car comme j'ai perdu le fichier source java. J'avais essayé de le décompiler a première vue tout semblait correct mais j'ai constaté que certaines fonctions etaient devenues des fonctions du type "public void func_78088_a" qui n'existent pas (je pense qu'il a été obfusqué par le compilateur). Je précise que le fichier source avait été généré en .java par le logiciel de modelling pour modding Minecraft "Techne". Je l'aivais ensuite modifié pour l'inclure dans un package mais suite à un changement de version je souaiterai réobtenir la source que j'ai perdu pour y effectuer des changements...
Ma question est donc : Y a-t-il des moyens de déobfusquer ou autre pour réobtenir des fonctions lisibles dans un fichier java et si oui lesquels ?
Je voudrai savoir si il y aurait un moyen de déobfusquer un fichier .class car comme j'ai perdu le fichier source java. J'avais essayé de le décompiler a première vue tout semblait correct mais j'ai constaté que certaines fonctions etaient devenues des fonctions du type "public void func_78088_a" qui n'existent pas (je pense qu'il a été obfusqué par le compilateur). Je précise que le fichier source avait été généré en .java par le logiciel de modelling pour modding Minecraft "Techne". Je l'aivais ensuite modifié pour l'inclure dans un package mais suite à un changement de version je souaiterai réobtenir la source que j'ai perdu pour y effectuer des changements...
Ma question est donc : Y a-t-il des moyens de déobfusquer ou autre pour réobtenir des fonctions lisibles dans un fichier java et si oui lesquels ?
A voir également:
- Deobfuscation d'un .class
- Realtek audio background process class ✓ - Forum Pilotes (drivers)
- Dans le code de la page, modifiez la couleur de fond de la classe .pix. un code de 4 chiffres doit apparaître dans la grille. lequel ? - Forum Réseaux sociaux
- Que signifie bp dans un classement de foot - Forum Loisirs / Divertissements
- Que veut dire db - Forum Réseaux sociaux
- Comment classer un tableau excel par ordre alphabétique - Guide
2 réponses
Bonjour,
Il n'y a aucun moyen de revenir au code source original.
La décompilation peut fonctionner dans certains cas, mais tous les outils ne se valent pas (en plus un binaire .class ne signifie pas que le code d'origine était du Java).
Quant à l'obfuscation c'est une modification du code source avant compilation. Donc à partir du binaire compilé tu ne peux que remonter au code source (obfusqué), jamais au code source original, et c'est bien pour ça qu'on les utilise.
Cependant si c'est ton code je doute qu'il soit vraiment obfusqué (ce n'est pas fait par défaut), c'est peut être juste ton decompilateur qui est mauvais, essayes jd-gui.
Il n'y a aucun moyen de revenir au code source original.
La décompilation peut fonctionner dans certains cas, mais tous les outils ne se valent pas (en plus un binaire .class ne signifie pas que le code d'origine était du Java).
Quant à l'obfuscation c'est une modification du code source avant compilation. Donc à partir du binaire compilé tu ne peux que remonter au code source (obfusqué), jamais au code source original, et c'est bien pour ça qu'on les utilise.
Cependant si c'est ton code je doute qu'il soit vraiment obfusqué (ce n'est pas fait par défaut), c'est peut être juste ton decompilateur qui est mauvais, essayes jd-gui.
Wolffe99
Messages postés
27
Date d'inscription
Statut
Membre
Dernière intervention
9
Ok merci pour tes explications. Dans ce cas je suis absolument sur que c'était du java. Justement j'utilisai déja jd-gui pour décomplier mais je pense que le compilateur spécial de MCP (Pack de modding pour Minecraft) a réobfusquer le code java en le compilant. Je vais peut etre essayer de redécompiler avec MCP en intégrant le .class avec les fichiers du Jeu, je sais pas trop comment je verrai si sa marche.
C'est bon j'ai trouvé une autre solution je sais pas si c'était en rapport avec l'obfuscation finalement mais j'ai trouvé la signification de ces fonctions inexistantes avec un tableau qui les associent à des fonctions existantes :
https://github.com/MinecraftForge/FML/blob/master/conf/methods.csv#L1
https://github.com/keepcalm/BukkitForge/blob/master/porting/mappings/v1_5_R2/mcp/fields.csv
https://github.com/MinecraftForge/FML/blob/master/conf/methods.csv#L1
https://github.com/keepcalm/BukkitForge/blob/master/porting/mappings/v1_5_R2/mcp/fields.csv