2011-08-05 5 views
1

私は、支払いの受領時に1台のコンピュータでFlashプログラムをダウンロードしてロック解除できるようにしています。これを行うために、私は、プログラムが別のコンピュータに移動されていないことを確認するためにチェックすることができるコンピュータのUUIDを作成しようとしていたが、コンピュータに関する十分な情報にアクセスする方法一意に識別可能な(または近くに)。フラッシュからコンピュータのUUIDを作成する

私は、この情報にアクセスできる別の言語で書かれた別個のプログラムを持っていると考えましたが、Flashから実行できるかどうかわかりません。

元の問題に対する任意のアイデアや代替の解決策があれば幸いです。

+0

AIRオプションであるか、またはそれがフラッシュ純粋であることがありますか? – RIAstar

+0

私は既にAIRコンパイラを持っていることに気が付きました。その代わりにAIRを使用するためにどれだけ変更する必要があるのか​​? – mmdeas

+1

ほとんど何もありません。おそらくあなたの主要なアプリケーションのほんの数行。そして、私はいくつかの考えを与える必要があるPCを識別するための部分。 AIRを使用すると、ネイティブアプリケーションにアクセスできるため、その道のりの解決策があるかもしれませんが、おそらくAIRを使用するより簡単なソリューションがあります。 – RIAstar

答えて

4

ネイティブコマンドを実行し、人物のコンピュータに関する特定の情報を取得する小さな外部EXE(AIRで)を作成できます。ソースコードのためにここに私の答えを参照してください:

How can i on button press execute a command in the command prompt and get back the output in ActionScript?

したがって、たとえば、Windows上であなたはC++でのexeファイルを書き込むことができます(C++の使用日食とmingwのマイクロソフトではない、あなたのexeファイルと.NETを再配布する必要がしたい場合を除きます) 。

#include <iostream> 
#include <stdio.h> 
#include <stdlib.h> 

using namespace std; 

int main() { 
    std::cout << system("wmic csproduct") << std::endl; 
    return 0; 
} 

これを出力します:ちょうどシステムのコマンドを使用します。このコマンドは返しMicrosoftによると

Caption     Description    IdentifyingNumber Name SKUNumber UUID         Vendor Version 

Computer System Product Computer System Product OEM    OEM    00000000-0000-0000-0807-XXXXXXXXXX(Hidden cause it's mine :D) OEM  OEM     0 

をS/Nローカルマシンにユニーク。それが満足のいくものではない場合は、コンピュータのシリアル番号を常に取得することができます。

とにかく、使用するものに関係なく、ユーザーが最初に登録するときにAS3CoreLib暗号パッケージ(おそらくSHA256クラスを使用してハッシュに変換)を使用してダイジェストに処理し、そのデータを登録情報とともにサーバーに送信します。彼らはアプリを起動するたびに、サーバーに接続してこのコマンドを再実行して、新しいハッシュ(起動時)をサーバー上の保存済みハッシュと比較し、一致しない場合は移動したことを知っている別のコンピュータに置いたり、海賊版にすることができます。

出典:

http://support.microsoft.com/kb/558124

http://www.cplusplus.com/reference/clibrary/cstdlib/system/

https://github.com/mikechambers/as3corelib/tree/master/src/com/adobe/crypto

+0

良いアイデアだが、この解決策にプライバシー問題があるかもしれない –

+0

おそらく、良い点。私は自分のシリアル番号などのダイジェストを保存しているだけなので、それは問題ではないかもしれないが、グレーの領域であると思っている。エンドユーザーの使用許諾契約を締結して、ハードウェア固有の情報の一部を確認のために保存し、プライバシーポリシーを発行するだけで済むようにしてください。プライバシーポリシーでは、収集されたすべての情報が決して第三者と共有されることはなく、ライセンスの検証に厳密に使用されるように書いてください。空想的な文章である必要はありません。良いポイントtho asMan。 –

+0

すべての情報をありがとう。私が塩でSHAを使用して誰かが簡単に作ることができないなら、サーバーが最初に登録コードをチェックした後にローカルに保管してチェックするのに問題がありますか?毎回サーバーと照合する利点がありますか? – mmdeas

関連する問題