特定のプログラムでは、使用を継続するために購入することを決定する前に、たとえば「10タスク」または「5時間」のデモ期間でそれらを実行できますが、プログラムを削除してアンインストールしてから再インストールすると、以前にインストールされており、デモを再度実行することはできません。
これはどのように行いますか?ダウンロードすると、識別番号(ip?)がcdnに送信され、以前にダウンロードしたことを通知しますか、またはプログラム自体がインストールされたときに、以前のインストールの痕跡を確認しますか?
特定のプログラムでは、使用を継続するために購入することを決定する前に、たとえば「10タスク」または「5時間」のデモ期間でそれらを実行できますが、プログラムを削除してアンインストールしてから再インストールすると、以前にインストールされており、デモを再度実行することはできません。
これはどのように行いますか?ダウンロードすると、識別番号(ip?)がcdnに送信され、以前にダウンロードしたことを通知しますか、またはプログラム自体がインストールされたときに、以前のインストールの痕跡を確認しますか?
ほとんどの「デモ」ソフトウェアは、マルウェアから借用した機能、つまり不完全なアンインストールによってこれを実行します。ソフトウェアに属するファイルまたはレジストリキーは、削除時に削除されません。再インストールすると、ソフトウェアは残りを認識し、それに基づいて動作できます。
そのような残りの部分でよく使用される隠れ場所はシステムディレクトリ(UACが到着する前)でしたが、多くの場合、クラスGUIDが登録されています-レジストリ内のどのクラスが本物であるか、または本物ではないかについての実際の概要を知っている人は誰もいません。
私のソフトウェアは、以前のインストールをチェックするために使用されるユーザーシステム内にブレッドクラムをドロップします。これは、IPに対するインターネットチェックよりも、回避するのが少し難しいです(何を探しているのか、どこを探しているのかわからないと仮定します)。いつでも接続情報を偽装したり、インストール中にインターネットから切断したりすることができます。
これを実装する方法はたくさんあります。
実装する最も簡単な方法(およびバイパスする最も簡単な方法)
画像差分ツールを使用すると、この方法を簡単に識別して克服できます。
克服またはバイパスするのが最も難しい方法は、サーバーを使用することです。最初の実行時に、ユーザーのコンピューター名、ドライブのシリアル番号などに基づいてハッシュコードを生成し、これをサーバーに送信します。次に、サーバーはこれを一意のインストールとして追跡し、アプリの実行を許可します。アプリを実行するたびに、サーバーを更新します。このように、ユーザーはパンくずリストを見つけて削除することはできません。これは、パンくずリストがサーバー上にあるためです。欠点は、この方法ではインターネット接続が必要になることです。
この結果を達成するためのより洗練された方法がおそらくありますが、上記は両方とも私が遭遇した実装です。