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のバージョンを判断するうえで実現可能な方法ですか?
!情報をお寄せいただきありがとうございます! –
これはAS2であるswfで-dumpSWFを使用した場合のテキストです: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ファイルです。 –