2010-05-31 9 views
1

Je cherche un moyen, de préférence un utilitaire de ligne de commande, de pomper un fichier .abc pour un swf compilé. J'ai regardé asc.jar, mais jusqu'à présent, il semble qu'il ne peut accepter que des classes, pas des swfs compilés. Quelqu'un sait-il un bon moyen de le faire?Existe-t-il un moyen de convertir un swf en un fichier .abc?

L'objectif final de ce processus est d'utiliser le projet RedTamarin de Zwetan pour exécuter describeType sur certaines classes spécifiques d'un fichier swf chargé, mais il existe des complications avec SecurityDomain qui m'empêchent d'utiliser Loader.loadBytes. S'il y a un autre bon moyen de décrire les classes dans le swf chargé via la ligne de commande, je serais également intéressé par cette solution.

Cheers,

J

Répondre

2

Je ne suis pas sûr de ce que vous essayez d'accomplir, mais nemo440 pourrait être utile.

+0

Merci , grapefrukt, mais ce n'est pas * tout à fait * ça. On dirait que nemo, ainsi que swfdump et flasm, lancent juste une représentation lisible par un humain du bytecode, pas le vrai fichier .abc. Dans les formats d'entrée répertoriés par Nemo, il répertorie .swf (à la fois compressé et non compressé) ET .abc, mais fournit le même vidage de texte pour les deux. Je cherche à convertir de. Swf en. ABB, pas besoin de pouvoir le lire: P –

+0

@Jeremy: SWF est juste un format de conteneur. L'ABC est intégré inchangé, autant que je sache. Saisissez simplement les spécifications SWF et découvrez comment ABC est intégré. Alternativement, vous pouvez utiliser 'swfdump' ou' swfutils' de flex sdk dans '/ lib /' avec '-abc source.swf> out.abc'. – back2dos

+0

@ back2dos: ne ressemble pas non plus à ça. Le fichier sabc généré par swfdump va être le même que mentionné précédemment, destiné à être lisible par l'homme. Je parle d'un fichier .abc légitime, comme décrit dans ces deux messages: http: // coderhump.com/archives/104 http://coderhump.com/archives/105 Le fichier .abc qu'il utilise peut être généré depuis une classe via asc, puis chargé dans le runtime de Tamarin. Prenez un fichier .abc créé de cette manière et comparez-le à la sauvegarde de texte de swfdump, nero ou flasm, et vous verrez la différence. –

0

Juste une mise à jour à cette question. J'avais besoin d'extraire les fichiers ABC d'un fichier SWF et essayé différentes options. Le seul que j'ai pu utiliser dans mon environnement (MacOSX 10.7) consistait à utiliser l'outil de ligne de commande Furnace.

1

Utilisez Apparat (besoin scala) à partir du code Google, de fusionner tous doAbcDefine en un:

cd Apparat & & ./reducer -m vrai -i file.swc -o merged.swc

Puis extraire (dézipper) library.swf de merged.swc

(hum, question était sur swf2abc. Je pense que vous pouvez «réduire votre file.swf directement)

alors vous pouvez extraire (l'unique) abc avec abcdump à partir du code google maashaack:

abcdump -a library.swf

vous obtenez (un unique) library.abc

+0

FYI à toute personne intéressée, j'ai un problème d'exécution apparat dans OS X, mais il fonctionne bien dans Ubuntu. –

Questions connexes