C# および Windows での評価ソフトウェアの起動時間または実行時間を制限する

StackOverflow https://stackoverflow.com/questions/3807129

質問

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

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

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

この種の機能を備えたサードパーティのライセンス システムを見かけます。これらのアプローチの実装が常に面倒だとしたら、どうやって実装すれば面倒にならないのでしょうか?

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

ありがとう、アンディ

役に立ちましたか?

解決

これはあなたの質問への答え、考えるだけのものではありません。あなたの保護のシステムがどのように複雑どんなに、それが割れやすくなります。でもオンライン・チェックで、それができる、と誰かがそれは本当に悪いたい場合ひび割れされます。

これはあなたのプログラムをクラックしたいと思う人々があなたの顧客されていない、彼らがいたことはありません、そして、彼らはできなくなります決して、と述べました。あなたの保護システムがubreakable作る(そして割れない保護システムが存在しない)場合は、それらの人々は自分のプログラムを使用することはありません、彼らはクラックすることができるいくつかの他のを見つけるでしょう。

一方、あなたの顧客である人々はそれを解読しようとしませんし、元を購入します。自問してみてください - あなたが本当にあなたの時間を無駄にしたくない、あなたの顧客ではない誰かのためのエネルギーとお金、そしておそらくactualy

である誰かのためにシステムが遅くなります? 私はあなたが保護システムのいくつかの種類を作るが、迅速かつ実装が容易で、少なくとも目障りであるものと一緒に行く必要があると考えています。

、言っ

他のヒント

比較的安全だがシンプルなソフトウェア ライセンス システムを構築するのは決して簡単ではありません。言うまでもなく、十分なリソースと時間があれば、どのシステム (安全なサーバー上でコードをホストしている場合を除く) も破られる可能性があります。できる限りのことは、そのために必要な努力を平均的な利益よりも大きくすることです。

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

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

できることは次のようなものです。

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

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

レジストリを使用しますが、有効期限を使用してエントリを暗号化します。絶対確実というわけではありませんが、カジュアル詐欺師の 75% を防ぐことができます。

他にもいくつかのトリックがあります:

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

安全なシステムにとって重要なのは、システムが管理するものはすべて信頼できないということです。インターネット チェックを備えていないシステムでは、VM のリロードを停止する方法はありません。

私は、プログラムの残りの部分のみのダウンロードクライアントを立てているいくつかのプログラムのインストーラの動向に注目してください。あなたは、何かのチェックが(ここでは曖昧なものの挿入)?

のような不明瞭ないという実行ファイルを送信するために、メタプログラミングを使用することができます
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top