====== How to extract the files from a Flash file (SWF) ====== **Important :** un bon nombre de SWF des jeux Motion Twin ont déjà été récupérés et exportés par l'équipe d'Eternal Twin. Avant de vous lancer dans la décompilation d'un SWF, vérifiez de que cela n'a pas déjà été fait. N'hésitez pas à demander sur [[https://discord.gg/ERc3svy|le Discord d'Eternal Twin]]. ===== Step 1: extracting the files from the SWF ===== Pour extraire les fichiers contenus dans fichier Flash (les images, les scripts, etc.), vous avez besoin du logiciel [[https://github.com/jindrapetrik/jpexs-decompiler/releases|JPEXS]] => [[http://portail.nadazone.fr/Export_SWF_FR.mp4|Tutoriel d'utilisation de JEPXS en vidéo]] (en français) ===== Step 2: desobfuscating the files ===== Les fichiers peuvent être obfusqués, c'est-à-dire que Motion Twin les a chiffrés afin que des parties sensibles de leur code ne soient pas facilement accessibles. Pour les désobfusquer, la méthode dépend selon que le SWF est en AS2 ou en AS3 (versions du [[https://fr.wikipedia.org/wiki/ActionScript|langage de Flash]]) : ==== Identifing AS2 / AS3 ==== Le logiciel JPEXS (voir plus haut) permet de savoir si le fichier SWF est en AS2 ou AS3 : - ouvrir le .swf avec JPEXS - dans le volet de gauche, aller dans le dossier "autres/FileAttributes" (dans la version anglaise du logiciel : "others/filesAttributes") - dans le volet de droite, si "actionScript3 : boolean = true" => le SWF est en AS3. S'il vaut "false", le SWF est en AS2. {{ :jpexs.png?600 |}} ==== Desobfuscating an AS2 file ==== Si le SWF est en AS2, il faut utiliser/adapter l'outil écrit par @Demurgos. Demander sur [[https://discord.gg/ERc3svy|le Discord d'Eternal Twin]]. ==== Desobfuscating an AS3 file ==== Si le SWF est en AS3, il faut réaliser 2 étapes : - Utiliser l'outil [[https://gitlab.com/eternal-twin/tools/obfu9|Obfu9]] (développé par @Booti) pour retrouver la clé d'obfuscation, tester des identificateurs, etc. - Puis utiliser [[https://gitlab.com/eternal-twin/tools/as3-deobfu|AS3 Desobfuscator]] (développé par @Moulins) pour remplacer les identificateurs obfusqués du SWF par des identificateurs en clair. Ces outils sont techniques, n'hésitez pas à demander de l'aide sur [[https://discord.gg/ERc3svy|le Discord d'Eternal Twin]].