2016-09-23 3 views
0

SWFファイルのActionScriptバージョンをアプリケーション内から判断して、別のSWFを使用せずに情報を取得する必要があります。これについて調査していたときに、thisフラッシュ逆コンパイラ。フラッシュデコンパイラの結果に基づいたActionScriptのバージョンを確認する

私はこのツールを使用して、既にActionScriptのバージョンが分かっていたいくつかのフラッシュファイルを逆コンパイルしました。私は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のバージョンを判断するうえで実現可能な方法ですか?

答えて

0

SWFファイルのFileAttributesタグには、SWFがAVM1(ActionScript 1.0/2.0)またはAVM2(ActionScript 3.0)を使用するかどうかを示すフラグが含まれています。このタグを省略すると、SWFはFlash Player 7以前のもので、AVM1のみになります。詳細はSWF specsです。

任意のSWF解析ライブラリまたはデコンパイラを使用して、このタグを検索できます。特定のJPEXSデコンパイラは、command line optionsをサポートし、SWFタグ、AS2、および/またはAS3スクリプトのリストをファイルに出力します。これには、-dumpSWF,-dumpAS2、および-dumpAS3コマンドライン引数が含まれます。たとえば、次のようにちょうどので、私が使用していた逆コンパイラであることを起こる

ffdec.bat -dumpSWF myfile.swf

+0

!情報をお寄せいただきありがとうございます! –

+0

これはAS2であるswfで-dumpSWFを使用した場合のテキストです:https://www.dropbox.com/s/smrcuw98jh7essm/NewSwfDump.txt?dl=0今すぐどうすればよいですか?このファイルを解釈するので、未知のActionScriptバージョンでこのファイルを読む方法を知っていますか? –

+0

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ファイルです。 –

関連する問題