2009年4月18日土曜日

Flexのswfの逆アセンブル

Flashのswfは逆アセンブルできるので、なんらかの理由でアルゴリズムが第三者に知られたくない場合に問題になる。と、どこかで聞いて知っていた。

AIRもswfなので、同じなのだろう。

確かめるために、自分で作ったAIRアプリを逆アセンブルしてみることにした。

まず、swfと逆アセンブルでぐぐったらFlareが引っかかったので試してみた。

結果は惨敗。クラス名と思われる名前は抽出されるが、肝心の中身は全く出力されていない。

同じswfなのに。

C++で作ったバイナリと、Cで作ったバイナリは、逆アセンブルすればそれぞれ特徴的なパターンを持っているのかもしれないと考えれば、Flashで作ったswfとFlexで作ったswfのパターンが異なっていてFlareで逆アセンブルできないことも不思議じゃない。

さて、ということは逆アセンブルできないのかというと、そうでもない。

Flex SDKにはswfdumpというツールがあったとか。(Flex SDK 3.3では見つけられない)
Flasmというものもある。(試してないけど)

それに、Nemo 440というAIRアプリを見つけた。

試してみたところ、バイトコードレベルだけれど、比較的読みやすいように思う。

FlashのVMのバイトコードを勉強する気にはまだなれないけれどね。

0 件のコメント:

コメントを投稿