2010-05-31 119 views
1

我正在寻找一种方法,最好是一个命令行工具,为编译后的swf抽出.abc文件。我研究过asc.jar,但到目前为止,它似乎只能接受类,而不是编译的swfs。任何人都知道这样做的好方法?有没有办法将swf转换为.abc文件?

此过程的最终目标是使用Zwetan的RedTamarin项目在加载的swf中的某些特定类上运行describeType,但SecurityDomain存在并发症阻止我使用Loader.loadBytes。如果还有另一种好的方法来通过命令行来描述加载的swf中的类,我也会对该解决方案感兴趣。

干杯,

Ĵ

回答

2

我不知道你想什么来完成,但nemo440可能是有用的。

+0

谢谢,grapefrukt,但这不是它*。它看起来像nemo,以及swfdump和flasm,只是弹出一个人类可读的字节码表示形式,而不是实际的.abc文件。在nemo列出的输入格式中,它列出了.swf(压缩和未压缩)和.abc,但为两者提供了相同的文本转储。我期待从.swf转换为.abc,不需要能够读取它:P – 2010-05-31 15:25:02

+0

@Jeremy:SWF只是一个容器格式。据我所知,ABC的内容是不变的。只需抓住SWF规格并查看ABC如何嵌入。或者,你可以在'/ lib /'的flex sdk中用'-abc source.swf> out.abc'使用'swfdump'或'swfutils'。 – back2dos 2010-05-31 16:10:32

+0

@ back2dos:看起来不是那么正确。由swfdump生成的sabc文件将与前面提到的一样,意味着可读。我正在谈论一个合法的.abc文件,如以下两篇文章中所述: http:// coderhump。com/archives/104 http://coderhump.com/archives/105 他使用的.abc文件可以通过asc从一个类生成,然后加载到Tamarin运行时。以这种方式创建一个.abc文件,并将它与来自swfdump,nero或flasm的文本转储进行比较,您将看到不同之处。 – 2010-05-31 20:31:32

0

只是对此问题的更新。我需要从SWF文件中提取ABC文件并尝试不同的选项。我唯一能够在我的环境中工作的人(MacOSX 10.7)是使用Furnace命令行工具。

1

使用阿帕拉特从谷歌代码(需要斯卡拉),合并所有doAbcDefine一个:

CD阿帕拉特& & ./reducer -m真正-i file.swc -o merged.swc

然后提取(解压缩)从merged.swc library.swf的

(哼哼,问题是关于swf2abc,我想你可以直接 '减少' 你file.swf)

那么你可以提取(唯一的),ABC与谷歌代码maashaack abcdump:

abcdump -a library.swf的

,那么你获得(独特)library.abc

+0

仅供参考任何有兴趣的人,我在OS X中运行的设备有问题,但它在ubuntu中运行良好。 – 2015-12-15 05:01:17

相关问题