Deobfuscation d'un .class
Résolu/Fermé
Wolffe99
Messages postés
27
Date d'inscription
lundi 21 juillet 2014
Statut
Membre
Dernière intervention
27 août 2014
-
Modifié par Wolffe99 le 24/07/2014 à 19:40
Wolffe99 Messages postés 27 Date d'inscription lundi 21 juillet 2014 Statut Membre Dernière intervention 27 août 2014 - 24 juil. 2014 à 21:39
Wolffe99 Messages postés 27 Date d'inscription lundi 21 juillet 2014 Statut Membre Dernière intervention 27 août 2014 - 24 juil. 2014 à 21:39
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
- Ouvrez cette page. 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 Programmation
- Class ram - Guide
- 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
2 réponses
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
24 juil. 2014 à 19:22
24 juil. 2014 à 19:22
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
lundi 21 juillet 2014
Statut
Membre
Dernière intervention
27 août 2014
9
Modifié par Wolffe99 le 24/07/2014 à 20:53
Modifié par Wolffe99 le 24/07/2014 à 20:53
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
Wolffe99
Messages postés
27
Date d'inscription
lundi 21 juillet 2014
Statut
Membre
Dernière intervention
27 août 2014
9
24 juil. 2014 à 21:39
24 juil. 2014 à 21:39
Liste complètes des fonctions de Minecraft FML : https://github.com/MinecraftForge/MCPData/blob/master/data/methods.csv
https://github.com/MinecraftForge/MCPData/blob/master/data/fields.csv
https://github.com/MinecraftForge/MCPData/blob/master/data/fields.csv
24 juil. 2014 à 19:39