2

私はクライアントに販売する予定のアプリケーションに取り組んでいます。クライアントは、1つまたは複数のコンピュータ上に同じアプリケーションの複数の別個のインストールを行う予定です。私は彼らが使用するコンピュータの数にかかわらず、それぞれ別々のインストールのためにそれらを請求します。私の問題は、別のライセンスを取得せずにあるフォルダから別のフォルダにプログラムをコピーできないように、インストールごとに固有の登録キーを設定したいということです。登録キー:単一のコンピュータ、複数のインストール

私の唯一のアイデアは、プログラムの物理パスとコンピュータのMACアドレスのハッシュを作成することです。再計算されたハッシュで保存されたハッシュをチェックすると、プログラムが移動またはコピーされたかどうかがわかります。大きな問題は、プログラムがファイルサーバーに格納されていて、各ユーザーが別のコンピューターからアクセスすると、exeへのパスがすべてのケースで同じではない可能性があるということです。これはまともな解決法ですか、それとも良い方法ですか?

.NETではなく、アセンブリでアプリケーションを作成しているので、回答の言語を中立にしてください。

+0

ので、私はそれがどのように技術に基づくリスクだと思います-savvy /あなたのクライアントは必死です。 とにかくクライアントを信頼しているのであれば、何回インストールして正しい料金を支払うのかを教えてくれる「正直な」アプローチを使用しないでください。 – brindy

+0

ちょうど、私はクライアントを信頼しています。彼らが契約を踏みにじるのが簡単すぎないようにしたくありません。この場合、MACアドレスは十分安全です。 – Sparafusile

+0

あなたのクライアントがどれほどハイテクに精通しているのかわかりませんが、VMwareなどのVMソリューションをチェックするための明示的なコードを追加したい場合があります。それ以外の場合は、「一度インストールしてどこでも実行」です。 – ChrisV

答えて

1

あなたは彼らがあなたのソフトウェア保護をリバースエンジニアリングするつもりはないことを、あなたのクライアントを信頼した場合、良い解決策は、以下のようになります。

1)あなたは、あなたのクライアントから必要なあなたが言及した情報、MACとパスを尋ねる

2)これらの2つの情報+あなたが知っているだけの長さの秘密シードを連結することができます(以下で解読する鍵として使用される有効なハッシュを簡単に生成できないようにするため)。このすべての情報からの有効なハッシュ

3)起動時に呼び出される関数をアプリケーションに作成し、そのハッシュをキーとして使用して残りのプログラムを復号化します。

4)購入した新しいライセンスのアプリケーションを送信する前に、新しい鍵でコードを暗号化します(復号化機能で必要な部分を除く)。

毎回、別のフォルダやコンピュータにアプリケーションを置くために、アプリケーションの新しいコピーを尋ねる必要があります。 解読関数によってアプリケーションのすべてのコピーによって読み取られる解読鍵は、異なるレジストリまたはファイルのレジストリに格納することができます。

私はそれが複雑に見えますが、これはうまくいくことがわかります。しかし、これもひどくひどくなる可能性があることを忘れないでください。そうしないと、あなたが望む結果が得られます。

私が助けたことを願ってい

...あなたはMACアドレスが偽装された/変更することができることに注意しなければならないのに、私にはOK聞こえるあなたが与えてくれたディテールで

+0

答えを考えてくれてありがとう。私は少し違って考えています。私はハッシュを生成するためにexe(他の質問と同様に自動的に計算される)の場所を使用するつもりです。クライアントは、ローカルに保存され、起動時に検証されるハッシュに基づいて登録キーを要求します。それはもう少しコミュニケーションですが、うまくいくと思います。私は本当に受け入れられた答えを1日に2回授与していますか? – Sparafusile

+0

私はちょうどあなたがしたと思う:O) あなたの方法は余りにももちろん働くことができる、それはちょうどバイパスするのは簡単です。とにかく、彼らがそれを信じるならば、O) –

関連する問題