ユーザーが試行回数を超えないようにする最も確実な方法は、ユーザーに登録コードを発行し (GUID が適切に機能します)、残りの試行回数を独自のデータベース サーバーで追跡することです。別のユーザーの GUID を推測することは非常に困難であり、残りのトライアルをハッキングすることは不可能です (サーバーへのハッキングを除けば)。
アプリケーションが実行されると、ソフトウェアのステータスを返す小さな Web サービスにヒットするだけです。Web サービスにアクセスできない場合、アプリケーションはユーザーにインターネットに接続して再試行するように求めます。
それを除けば、簡単に、簡単にハッキングできないオプションは多くありません。残りの試行回数を暗号化したとしても、ユーザーが行う必要があるのは、ファイルを別の場所にコピーすることだけです。制限に達したら、元のファイルを削除してコピーに置き換えます... 無限に繰り返します.
このモデルの優れた点は、ユーザーがフル バージョンを購入すると、データベースを更新してフル アクセスを許可するだけでよいことです。
完全に支払ったユーザーがインターネットに接続する必要なくソフトウェアを使い続けられるようにしたい場合は、ソフトウェアの支払い後に Web サーバーに最初に接続したときに、ユーザーの有料サブスクリプションを確認するキー ファイルをどこかに保存できます。ユーザーの登録番号に基づいてハッシュを作成して、あるユーザーが別のユーザーのキー ファイルを使用できないようにすることもできます。
サブスクリプションが年次の場合、有料ユーザーのアプリケーションは、インターネット接続が利用可能になるたびにサーバーに再クエリを実行し、登録がまだ有効であることを確認するために再チェックできます。または、鍵ファイルに、有効でなくなる暗号化された日付が含まれている可能性があります。
編集: 日付に基づく試運転は、実装がはるかに簡単です。暗号化された日付を含むキー ファイルを提供できます。日付は変更されないため、ユーザーはキー ファイルをハッキングするのに非常に苦労します。他人のものを借りたり盗んだりしたとしても、それも無効になるまでに(試用期間にもよりますが)1週間か2週間しか与えられません. 違いは、日付ベースのキー ファイルは静的であり、なりすましが非常に困難であるということです。
さて、もう 1 つの方法は、2 つのアプローチを組み合わせることです。同じキー ファイルで、暗号化された日付を使用してカウントダウンを行うことができます。これにより、ユーザーがキー ファイルをコピー/置換しようとしても、試用期間が最終的に終了することが保証されます (おそらく、1 か月あたり 10 回の使用のいずれか早い方)。