Mac OSでは、アプリケーション上のすべてのコンテンツを読むことができます(mxmlおよびファイル)。 実際にアプリケーションを右クリックすれば、すべてのアプリケーションコンテンツとすべてのファイルを見ることができます。 それで、会社がそのような航空アプリケーションを配布することは非常に危険です。 これらのファイルを保護するソリューションが存在します。Protect Airアプリケーションのコンテンツ
ありがとうございました
Mac OSでは、アプリケーション上のすべてのコンテンツを読むことができます(mxmlおよびファイル)。 実際にアプリケーションを右クリックすれば、すべてのアプリケーションコンテンツとすべてのファイルを見ることができます。 それで、会社がそのような航空アプリケーションを配布することは非常に危険です。 これらのファイルを保護するソリューションが存在します。Protect Airアプリケーションのコンテンツ
ありがとうございました
すべてのコードを読むことができるデコンパイラがありますが、暗号化ソリューションを試してみる価値のある人がいます。 http://forums.adobe.com/message/3510525#3510525
引用テキスト(ページの場合には消去される)
私が使用する方法は、あなたのほとんどをencrpytできるようになります:
は、この記事を見てください(これは、デスクトップAIRアプリケーションのためです)ソースコードはすべてのコンピュータに固有のキー を使用しています。 ソフトウェアの最初のダウンロードは、実際のプログラムが含まれていないシンプルなエアアプリです。 これは、クライアントmac のアドレスと購入時にユーザが入力した起動コード のリストを最初に後退させるシェルのようなものです。これはサーバーに送信され、ログに記録されます。アクティベーションコード はファイルクライアント側に保存されます。サーバーでは、MACアドレスと アクティブ化キーを使用して暗号化キーを作成します。次に、 プログラムコードの大部分は、その鍵を使用して暗号化され、次に部分 に分割され、クライアントに送り返されます。クライアントは、部品を一緒に戻して とし、暗号化されたファイルを保存します。実行時にシェルは アドレスリストとアクティベーションキーを見つけ、サーバと同じ方法を使用して が暗号鍵を取得し、プログラムファイルを復号化します。簡単に実行して、 がロードされていることを確認してください。 encyptionについては、 がphpとjavascriptで動作するaesメソッドが見つかりました。
次は、私はこの方法では、私はそれを書いたので、私はいくつかの weeknessesがある知っているが、それは非常に困難に別のコンピュータに をコピーすることができますプログラム
var loader = air.HTMLLoader.createRootWindow(true, options, true, windowBounds);
loader.cacheResponse=false;
loader.placeLoadStringContentInApplicationSandbox=true;
loader.loadString(page);
をロードするためにこのコードを使用セキュリティを強化するが、それを難しくするために私はobv。シェル コード。それは少なくとも海賊からほとんどを保ちます。しかし、私が見つけたこれとの問題 があります。最初にnetworkInfoを使って のMACアドレスのリストを取得していましたが、これはテスト用のWindows XPコンピュータでは失敗しました。 ワイヤレスがオフになっても、MACは返されませんでした。私は をVISTAまたは7で再現することができませんでした。 Macコンピュータで がテストされていませんでした。これを修正するには(少なくともウィンドウの場合)。私は は、MACリストを取得し、 に含まれているEXEに変換された単純なバットファイルを書いた。これにより、ネイティブの インストーラが作成されます。この
var nativeProcessStartupInfo = new air.NativeProcessStartupInfo();
var file = air.File.applicationDirectory.resolvePath("findmac.exe");
nativeProcessStartupInfo.executable = file;
process = new air.NativeProcess();
process.start(nativeProcessStartupInfo);
process.addEventListener(air.ProgressEvent.STANDARD_OUTPUT_DATA, onOutputData);
process.addEventListener(air.ProgressEvent.STANDARD_ERROR_DATA, onErrorData);
process.addEventListener(air.NativeProcessExitEvent.EXIT, onExit);
process.addEventListener(air.IOErrorEvent.STANDARD_OUTPUT_IO_ERROR, onIOError);
process.addEventListener(air.IOErrorEvent.STANDARD_ERROR_IO_ERROR, onIOError);
でexeファイルを呼び出すのArray.pushを使用してonOutputDataイベントに一緒にリストを入れて、 はfindmacを使用してフォーカス喪失時のイベントに引き続き。exeは 同じ情報を毎回返します(私が知っている) ネイティブインストールを使用すると、標準アプリケーションの更新プロセスが壊れてしまうので、あなた自身で作成する必要があります。私のアップデートは上記のように と同じ方法で処理されます。これは、MACリストこのメソッドを使用して
@Echo off
SETLOCAL SET MAC = SET Media = Connected
FOR /F "Tokens=1-2 Delims=:" %%a in ('ipconfig /all^| FIND "Physical Address"') do @echo %%b ENDLOCAL
を取得するための.batファイルの内容であることは 方法であなたの前の試みで実装することが簡単になります。実行時にアクティベーションコードがない場合はフルバージョンではなく サーバーから試用版を取得してください。
コードを100%保護することはできません。結局のところ、コンピュータがそれを実行できるならば、言語にかかわらず、それは逆コンパイルすることができる。しかし、あなたはそれをもっと難しくすることができます。
1つの方法は、別の回答に記載されているようにswfを暗号化することです。しかし、 "攻撃者"が必要とするのは、鍵を見つけて、すべてのswfを解読することだけです。
もう1つの方法は、難読化ツールを使用することです。難読化ツールは暗号化に依存せず、逆コンパイルを防ぐものでもなく、逆コンパイルされるものを理解するのが難しくなります。
たとえば、saveInvoice()というメソッドがある場合、obfuscatorはその名前をaa1()などの名前に変更するため、その関数が何をするかを推測するのが難しくなります。基本的にすべてをスパゲッティコードに変換します。
逆コンパイラを使用して、SWFファイルから何が得られるのか(たくさんあります)、難読化ツールを使用してあなたの意見に合っているかどうかを確認できます。
私がbtwを支持していないhttp://www.kindi.com/の例は、すぐにGoogleに表示されます。
SWFファイルにコンパイルした場合は、ソースファイル(MXMLおよびAS)をSWFの逆コンパイルの手前に表示するべきではありません。 –