Hello à tous, j'avais cette idée en tête depuis un petit moment et je suis finalement réussi à faire ce que je voulais: mettre à jour automatiquement mes modifications du loader.swf plutôt que de repasser par JPEXS, vérifier si les noms de variables n'ont pas changé et refaire tout à la main à chaque fois.
Je ne vais pas partager tout le code mais je vais vous donner un exemple simple de comment je fais si vous voulez le faire vous-même dans le langage que vous voulez pour trouver une variable et ajouter une commande pour l'activer ou la désactiver.
La technique est en fait très simple et se compose des étapes suivantes:
-Export des sources
-Identification des fichiers qu'on souhaite modifier et des variables qu'on souhaite utiliser
-Application des modifications P-Code
-Import des fichiers modifiés dans le swf
Premièrement on exporte avec JPEXs les sources au format .as et .pcode c'est important d'exporter les 2.
En ligne de commande:
java -jar .\ffdec.jar -format script:pcode -export script "C:\scripts" loader.swf
java -jar .\ffdec.jar -format script:as -export script "C:\scripts" loader.swf
Ensuite, on va chercher dans les sources desobfusquées comme dofedex où se trouve la variable que l'on souhaite changer, pour le no anim c'est this.api.datacenter.Player.isSkippingFightAnimations qu'on peut trouver dans DebugConsoleParser.
Pour retrouver le nom obfusqué de cette variable on va parcourir tous les fichiers .as que l'on a extrait plus haut et utiliser une regex pour l'extraire:
on a la ligne suivante dans le .as:
this["\x1a\x1c\x14"](undefined,"SKIP FIGHT ANIMATIONS : " + this.api["\x1e\x18\x06"]["\x1b\x17\x10"]["\x1d\r\t"],"DEBUG_LOG");
On peut remarquer que certaines parties du code ne changent pas, ou très rarement, en l'occurrence les string statiques comme "SKIP FIGHT ANIMATIONS:" donc je peux utiliser la regex suivante pour extraire la variable qui m'intéresse dans cette ligne:
undefined,\"SKIP FIGHT ANIMATIONS : \" \+ (this.api(?:\[[^]]+\]){3}),\"DEBUG_LOG\"
On a donc récupéré le nom à jour de notre variable il suffit maintenant d'ajouter une commande dans ChatConsoleParser,
mais il faut d'abord retrouver le fichier obfusqué correspond, on utilise encore une fois une regex pour trouver une signature qui indique que c'est le bon fichier. Cette fois-ci c'est simple on peut utiliser un case du switch:
case \"GODMODE\":
On sait maintenant identifier le fichier ChatConsoleParser.as, on va trouver un endroit où injecter notre P-Code, j'ai choisi la ligne 29 juste avant le while:
![img]()
On va maintenant trouver le P-Code correspondant dans le volet de droite de JPEXS:

On veut rajouter notre code juste après le Pop l.1036 on va de nouveau utiliser une regex pour matcher dans les fichiers .pcode cette fois:
(Add2\s+StoreRegister 7\s+Pop(\s|\w*)+Push 1 0 2 register5 \\"splice\\"\s+CallMethod\s+Pop)
On a plus qu'à insérer notre P-Code à cette endroit et sauvegarder le fichier. Il faut bien veiller à mettre de côté les fichiers .pcode modifiés tout en gardant la bonne arborescence pour pouvoir les importer par la suite, ex:
![img]()
Une fois avoir fait toutes vos modifications vous pouvez importer le dossier de scripts modifiés avec FFDEC:
java -jar .\ffdec.jar -format script:pcode -importScript 'loader.swf' 'mod.swf' 'C:\pcode'