2010-05-31 118 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