De la décompilation : astuce pour débutants

Labo

Membre Actif
Inscrit
16 Aout 2013
Messages
799
Reactions
15
#1
Salut tout le monde,

J'utilise JPEXS comme décompilateur, et mon ordi souffrait parce qu'il est écrit en Java et qu'en plus la décompilation c'est lourd.
Si comme moi vous en avez marre, voici une astuce :idea: :

Il y a une fonction nommée "Export selection" qui permet de tout décompiler une bonne fois pour toutes.
Pour un bot socket, les seuls .as utiles sont dans com/@nk@m@games/døfus/network (on peut spécifier messages, mais il y a quelques autres sources utiles.

Pour ceux qui sont sous mac, on peut même voir ces fichiers avec "coup d'œil" (QuickLook) en installant ça : https://code.google.com/p/qlcolorcode/.

Par contre, je suis encore en train de regarder pour pouvoir faire des recherches de texte à l'intérieur des fichiers (sans les ouvrirs, depuis le finder), parce qu'ils sont considérés comme des archives AppleSingle. Mais je pense que si j'installe un IDE d'actionscript, celui-ci modifiera le type des .as.

De toutes façons, je vais écrire un programme récursif qui parcourt les fichiers, et crée une base de donnée Id/nom du paquet.
Si vous voulez, je pourrai vous la faire partager.
 
Inscrit
27 Aout 2012
Messages
264
Reactions
0
#2
Hello,

Forcément, ca fonctionne mieux si on exporte tout d'un coup et c'est bien plus pratique pour utiliser et rechercher dans les sources par la suite.
Si on s'amuse a ouvrir JPEXS a chaque fois pour aller chercher ce qu'on veut, c'est vite chiant.
Concernant la recherche, j'utilise SublimeText. Je charge mon dossier decompile dedans et je peux faire des recherches dans tout le dossier.
De plus, lorsque j'ai besoin de consulter un fichier spécifique, je peux utiliser le fuzeopening intégré pour ouvrir directement ces fichiers.

Par exemple si je veux consulter HelloConnectMessage, je ferai Cmd+P et j'aurais juste a taper des morceaux du nom, du style HelConMess et automatiquement il trouvera le bon fichier. Je finis par Entrée et me voila dans la classe :).
 

Kyu

Staff
Membre du personnel
Inscrit
4 Octobre 2009
Messages
327
Reactions
8
#3
Notepad++ permet aussi la recherche dans des sous dossiers.
 
Inscrit
11 Novembre 2013
Messages
24
Reactions
0
#4
Ou alors, tu décompile tout en .as, ensuite avec un petit programme maison tu parcours tout les fichiers pour changer l'extension en .cs ou .vb. Puis dans la recherche de Windows (en haut à gauche de l'explorer) tu tape ta requête et il cherche parmi les noms des fichiers mais aussi à partir de leurs contenus ;)
 
A

Anonymous

Invité
#5
... ou alors si tu es sous Linux tu fait un petit "grep -R" qui s'exécute en quelques millisecondes, et donne même des résultats colorés.
 

Gohu

Membre Actif
Inscrit
16 Novembre 2013
Messages
222
Reactions
2
#6
Munrek a dit:
... ou alors si tu es sous Linux tu fait un petit "grep -R" qui s'exécute en quelques millisecondes, et donne même des résultats colorés.
chez OSX aussi, c'est le coeur UNIX <3
 
A

Anonymous

Invité
#7
Sur Windows aussi bitches
 

Gohu

Membre Actif
Inscrit
16 Novembre 2013
Messages
222
Reactions
2
#8
windows c'est pas dutout unix...
Aucun rapport avec les fonctions du terminal Linux/OSX
 

Sorrow

Membre Actif
Inscrit
5 Mai 2012
Messages
376
Reactions
26
#9
Avec cygwin ou équivalant tu peut avoir les commandes UNIX.
 
A

Anonymous

Invité
#10
Bonsoir,

Afin de ne pas créer un nouveau topic, je pose ma question ici. J'utilise SWFDecompiler (je suis sur Mac), mais je ne parviens pas à trouver DofusInvoker.sfx. Je me sens idiot... Pourriez-vous me guider ? Je double-clique sur Dofus.app, apparaît alors un dossier "Contents", et à l'intérieur un dossier Data, où se trouve à nouveau Dofus.app. Lorsque je double-clique sur ce second Dofus.app, SWFDecompiler plante. Par avance, merci !

EDIT : J'ai fini par remarquer la ligne "Afficher le contenu du paquet" en faisant un clique-droit sur dofus.app. J'arrive enfin à dofusinvoker.swf. Mais lorsque je l'ouvre avec SWFDecompiler, j'obtiens le message "Alerte *** -[NSCFArray objectAtIndex:]: index (0) beyond bounds (0)". Que dois-je faire ?
 
A

Anonymous

Invité
#12
Bonsoir,

Merci de ta réponse. Malheureusement, je tourne sous Snow Leopard (Mac OS 10.6.8), ce qui me contraint à utiliser une ancienne version de JPEXS pour décompiler le dofusinvoker.sfw, puisque je n'ai accès qu'à la version 6 de Java, et ça ne fonctionne pas. J'essayerai bientôt avec une mouture récente !

Bonne soirée !
 
Haut Bas