Flex / Air 難読化 [終了]
-
08-06-2019 - |
質問
私はアプリケーション (のほとんど) を Flex で作成しており、ソース コードの保護に関心があります。のデモを起動しました Trillix swf デコンパイラ そして、Program Files ディレクトリにインストールされている swf ファイルを開きました。私が作成したすべての actionscript パッケージがそこにあることがわかりました。かなりの量のコードがありますが、mxml ファイルなしでは依然としてかなり使いにくいように見えるため、私はパッケージについてはあまり心配していません。これらは actionscript に変換されると思います、または少なくとも私はそう願っています。ただし、難読化については引き続き検討していきたいと考えています。
Flash / Actionscript 3 / Flex 難読化ツールを使用した経験のある人はいますか?良い商品をお勧めしてもらえますか?
解決
私ならこうします。
アプリケーションを SWF ファイルにコンパイルします。次に、AES を使用して SWF を暗号化します。
URLLoader を使用して、暗号化された SWF を ByteArray にロードする「ラッパー」アプリケーションを作成します。
使用 as3crypto 実行時に swf を復号化するライブラリ。
復号化したら、Loader.loadBytes を使用して、復号化された swf をラッパー アプリケーションにロードします。
これにより、コードを取得することが非常に困難になります。不可能ではありませんが、より困難です。
AIR アプリケーションの場合、アプリケーションをエンドユーザーに配信するときに SWF を暗号化したままにすることができます。次に、SWF の復号化に使用されるキーを含む登録キーを指定できます。
また、ここに AS3 難読化ツールへのリンクがあります。ただし、それがどの程度うまく機能するかはわかりません。http://www.ambiera.com/irrfuscator/index.html
他のヒント
maclema が提案する手順では、攻撃者がソースを取得するのを実際に阻止することはできません。攻撃者が AES (またはその他のアルゴリズム) を使用していることを知ることができるように、「ラッパー アプリケーション」は暗号化されていない必要があり、復号化キーも同様の方法で取得します (どこかに平文である必要があるため)。これを取得すると、SWF ファイルを簡単に復号化できるようになります。
唯一信頼できる解決策は (そうですね...) ある種の難読化ツールです - 最新バージョンの Flex で動作する Amayeta を使用しています - を参照してください。 http://www.amayeta.com/software/swfencrypt/ .
私の意見では、最も簡単で安全な解決策は、maclema と Borek の答えを組み合わせることです。
コードを難読化することは、最初からプロセスにコードを含めていなかったり、アプリケーションが非常に大きい場合には、大きな問題となる可能性があります。オブジェクトまたは動的クラスで多くの unTyped 変数を使用していた場合、リモート パッケージを使用した場合 (そしてこれを難読化ツールに宣言しなかった場合)、難読化によってアプリケーションが破損する可能性があります。
それで:大きなアプリケーションで maclema のソリューションを実行し、ラッパー (難読化が非常に簡単な小さなアプリケーション) で難読化を使用すると、コードは最も安全になり、手間は最小限になります。時間をかけて難読化をリバース エンジニアリングしてパッケージを復号化するのは、よほど怒っている海賊だけでしょう。まあ、誰かがあなたのアプリケーションコードをひどく欲しがるなら、それはCIAに関係しているか、あなたがすでに大金持ちであるかのどちらかです(あるいはその両方)
皆さん、ご回答ありがとうございました
最近、Flash を使用して iOS と Android のゲームをリリースしました。SWF 内のソース コードを保護するための優れた無料プログラムをインターネットで探しましたが、何も見つからなかったので、プログラムを作成しました。まだ開発中なので「自己責任で使用してください」ですが、私にとってはうまくいきました。
githubで公開されています。ぜひチェックして、ご意見をお聞かせください。
https://github.com/Teesquared/flasturbate
Windows バイナリをアップロードしましたが、試してみたい場合は、指示に従って自分でビルドすることをお勧めします。
この難読化ツールは SWF ファイルに対して直接動作します。現在はシンボルの名前を変更するだけですが、将来的にはバイトコードの変更をサポートする可能性のあるフレームワークに基づいて構築されています。