2011-05-13 4 views
1

特定のキーアルゴリズムを実行するメソッドを含む錬金術術のswcがあります。これらのメソッドは、セキュリティ目的でユーザーが許可されている(オンラインサービスからライセンスを購入した)場合にのみ値を返す必要があります。だから私はこれの上にもう一つのSWCを追加するつもりです。これらのSWCは全てのライセンスコードを持っています。しかし、Alchemyが生成したswcをカスタムswc内にインポートすると、錬金術のすべてのメソッドが公開されます。彼らのアクセスを制限する方法。つまり、これらのメソッドをカスタムコンポーネントでのみ使用し、カスタムコンポーネントを使用するには使用しないでください。別のswcに存在するswc内のメソッド呼び出しを保護する

答えて

1

フラッシュのセキュリティの世界へようこそ、そのようなものはありません。問題は、クライアントには常にコードがあることです。したがって、常にクライアントからコードを保護するための方法を採用することはできません。バイナリを暗号化して解読する場合でも、コードは常にメモリまたはキーに格納されます。これは、次世代ゲーム企業がサーバー上で動作するゲームを作成しようとしている理由の1つで、エンドユーザーにリモートUIを提供するだけの理由です。だから、基本的にあなたが本当に何かを守る唯一の方法は、サーバー側に機能を書くことです。より多くのためにこのコメントを参照してください。

What is the best way to stop people hacking the PHP-based highscore table of a Flash game

また、私はちょうど私がちょうどここに私の耳を話していないよと言いたいです。私はかつてフラッシュのための錬金術のリアルタイムバイナリ暗号化/復号化スキームを開発し、そのようなサービスを通してフラッシュを安全にした天才にしようとしました。はい、おそらくそのようなことは基本的なユーザーからコンテンツを保護することができますが、バイナリとソースコード、または少なくとも暗号アルゴリズム+エンドユーザーに公開されたキーを常に持っています。システムに侵入して妥協する。

+0

詳細情報とリンクをありがとうが、このアプリケーションではサーバークライアントソリューションを避けたいものがあります。これは最終的にAIRアプリケーションであり、Alchemyから取得した計算はライブでなければならないため、サーバーの要求/応答を減らすことにしました。 – mobdev999

+0

@paleozogtは良い点を示しています。また、あなたがタスクに達していてSSL機能を持っている場合は、フラッシュで基本的なファイルの暗号化/復号化アルゴリズムを作成し、実行時にswcをロードし、SSLで鍵を取得し、SWCを復号化し、すぐにメモリ。まだ十分な知識を持っている人でもこのシステムを危険にさらす可能性があります。その代わりに、サーバー側で解読を行い、ソケット上でフラッシュするようにswcバイトをストリーミングして、ワンタイムキーを使用してメモリからオブジェクトをロードします。 –

+0

上記の私の提案について、私は自分自身で試してみましたが、ファイルが比較的小さく(5メガ以下)、キーが馬鹿馬鹿しくない限り、パフォーマンスクライアント側は非常に良いです。 –

1

Ascension Systemsの回答は正しいです。クライアントで実行されているコードの盗難を防ぐことはできません。できることは難読です。

コンパイルする前に、AlchemyソースでC/C++ code obfuscatorを使用することができます。これは、少なくともAlchemyの機能(FSM_Z18blahblahblahなど)をわかりやすく、難しくします。

+0

難読化は、ハッカーを混乱させる良い方法ですが、実際にはあなたのswcをハックプルーフしません。とにかく、私はいくつかのAIRやそのようなものにしない限り、クライアントに行くフラッシュ中のものはハック可能であることを理解しています – mobdev999