我需要從應用程序中確定SWF文件的ActionScript版本,而不使用其他SWF來獲取信息,並且正如我在爲此進行研究時,我遇到了this閃光反編譯器。根據Flash反編譯器的結果確定ActionScript版本
我用這個工具反編譯了幾個我已經知道ActionScript版本的Flash文件,並且我注意到了ActionScript 2文件和ActionScript 3之間的區別。在這個截圖中:(unfortunately I cannot post images yet),你可以看到底部的SWF稱爲Cardio Sequence.swf
,這是一個ActionScript 3文件,在scripts
文件夾中有一個名爲MainTimeline
的文件。
在我測試的所有文件中,ActionScript 3文件都有這個MainTimeline
文件,而ActionScript 2文件沒有。有什麼方法可以讓這些信息在另一個應用程序中作爲字符串被讀取(即if (scripttext.MainTimeline != null) {doSomething}
)?或者,這甚至是確定ActionScript版本的可行方法?
這恰好是我使用的反編譯器!非常感謝! –
這是我從在swf上使用-dumpSWF得到的文本,這個文件被稱爲AS2:https://www.dropbox.com/s/smrcuw98jh7essm/NewSwfDump.txt?dl=0現在我該如何去了解解釋這個文件,所以我知道如何閱讀未知的ActionScript版本? –
FileAttributes標記的第4位決定了ActionScript版本。請參閱[SWF規範的FileAttributes部分](http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/swf/pdf/swf-file-format-spec.pdf ),第57頁。在您發佈的示例中,FileAttributes標記的第1個字節中的第4位是0,因此您知道它是一個ActionScript 2文件。 –