8

アプリケーションを起動できる回数を制限したり、Windows 7およびC#を使用してアプリケーションを使用できる期間を制限したりするための良い方法はありますか?

レジストリを簡単に編集できる限り、あらゆる種類のファイルアクセスを報告するプログラムがあり、仮想マシンを使用して、システム時刻をアプリケーションがインストールされたときまで戻すことができます。 (通常)些細な回避策があります。

インターネット接続の必要性を避けたい。つまり、ハッシュなどを使用して毎回起動する許可をソフトウェアに要求させたくありません。

この種の機能を備えたサードパーティのライセンスシステムがあります。これらのアプローチを実装することが常に不十分である場合、それが不完全でないようにどのようにそれを行うのですか?

注:サードパーティのシステムを「クラック」したくありません。改善したい独自のライセンスシステムをすでに持っています。一般的でもっともらしいアイデアが私が探しているすべてです。

ありがとう、アンディ

4

4 に答える 4

7

これはあなたの質問に対する答えではなく、ただ考えるべきことです。保護システムがどんなに複雑であっても、簡単に解読されます。オンラインチェックを行っても、誰かが本当にひどいことを望んでいる場合、それは可能であり、ひびが入るでしょう。

とは言うものの、あなたのプログラムをクラックしたいと思う人々はあなたの顧客ではありません、彼らは決してそうではありませんでした、そして彼らは決してそうなることはありません。あなたがあなたの保護システムを破壊可能にすると(そして破壊不可能な保護システムがない場合)、それらの人々はあなたのプログラムを使用せず、彼らがクラックする可能性のある他のものを見つけるでしょう。

一方、あなたの顧客である人々はそれをクラックしようとせず、オリジナルを購入します。自問してみてください-あなたは本当にあなたの顧客ではない誰かのためにあなたの時間、エネルギーそしてお金を浪費したいですか、そしておそらく実際にいる誰かのためにシステムを遅くしたいですか?

とはいえ、何らかの保護システムを作成する必要があると思いますが、迅速かつ簡単に実装でき、邪魔にならないシステムを使用してください。

于 2010-09-27T19:57:48.323 に答える
1

ソフトウェアライセンスのための比較的安全でシンプルなシステムを構築することは決して容易ではありません。言うまでもなく、十分なリソースと時間があれば、(安全なサーバーでコードをホストする以外の)システムが壊れることがあります。あなたができる最善のことは、それを行うために必要な努力を平均的な利益よりも大きくすることです。

独自のソフトウェア資産を保護することを真剣に考えている場合は、独自のソフトウェア資産を導入するのではなく、商業的に証明されたライセンス技術の使用を検討する必要があります。そうは言っても、あなたが説明する方法で保護を検討する方法を見てみましょう。

まず、仮想マシンの時代では、作成したファイルまたはレジストリエントリは簡単にロールバックできることを理解する必要があります。検証プロセスのオンラインコンポーネントがなければ、このシナリオを防ぐことはできません。

あなたができることは次のようなものです:

  • システムが使用された日数の暗号化された値を格納します。この値は決して後退することはできません。
  • システムが使用されるたびにゼロに向かってデクリメントする暗号化されたカウンターを保存します。
  • ソフトウェアが最後に起動された日時の暗号化された値を保存します。
  • 他の3つの値の暗号化されたハッシュを保存します。

これで、これらの値が一貫していることを確認し、誰かがそれらを改ざんする能力を制限する手段があります。また、これらの値をSALTして、簡単に再生できないようにする必要があります。

于 2010-09-27T19:43:28.397 に答える
0

レジストリを使用しますが、有効期限でエントリを暗号化します。それは絶対確実ではありませんが、カジュアルな詐欺師の75%を維持します。

他のいくつかのトリック:

  1. 使用された日数も(おそらく別のregキーまたはまったく異なる場所に)保存して、時計をロールバックしても使用された日数は同じままになるようにします。
  2. 暗号化に何らかの形式のソルトを使用して、同じ有効期限を持つ2つのプログラムの値が異なるようにします。
  3. HDのブートセクターへの書き込み(Adobeを見て)のような本当に厄介なものから離れてください。DRMから得られるよりも多くのユーザーがその練習をすることができなくなります。

安全なシステムの鍵は、システムが制御するものを信頼できないことです。インターネットチェックがないシステムでは、VMのリロードを停止する方法はありません。

于 2010-09-27T19:39:28.860 に答える
0

一部のプログラムのインストーラーが、プログラムの残りの部分でスタンドアロンのダウンロードクライアントになる傾向に気づきました。メタプログラミングを使用して、(ここにあいまいなものを挿入する)のようなあいまいなものをチェックする実行可能ファイルを送信できますか?

于 2010-09-27T19:47:11.260 に答える